我们假设有一个C#程序,它用作Windows服务.让我们假设服务已经疯狂,并且像疯了一样消耗CPU和内存.它需要很快重新启动,因为它是一个生产系统.所以我没有太多时间收集运行时信息.也许快速浏览任务管理器......就是这样.
之后,我所拥有的只是log4net日志文件和用于事后分析的Windows事件日志.
假设我找到了问题的原因.其他人修复了它,也许程序员添加了一些额外的日志记录,所以我下次可以更快地找到类似的问题.尽管如此:我仍然依赖于日志文件的质量,并希望下次问题会以某种方式在记录中显示出来.
是否还有其他方法进行验尸分析?也许像线程转储(如java),内存转储或其他东西,这可能有助于事后分析?也许一些内置的.NET框架工具可以提供帮助吗?
我对真实的项目经验以及如何解决这个维护问题非常感兴趣,我认为这对大多数程序员来说都是非常真实的.