.NET有类似于Java垃圾回收日志的东西吗? 我想在生产应用程序中将GC统计信息写入日志中。 Google没有提供任何有用的信息,SO也没有相关的问题。
谢谢
.NET有类似于Java垃圾回收日志的东西吗? 我想在生产应用程序中将GC统计信息写入日志中。 Google没有提供任何有用的信息,SO也没有相关的问题。
谢谢
GC统计数据可用作性能计数器。在perfmon中,它们显示在“.NET CLR Memory”类别下。您可以通过System.Diagnostics命名空间(PerformanceCounterXxx类)以编程方式访问性能计数器,或使用Server Explorer创建方便的包装器。
请注意,这些是统计数据,不提供详细的每个对象日志记录。
您可以使用垃圾回收通知自行设置一些GC日志记录级别。但请注意,如果您正在使用ConcurrentGC,这对于服务器端应用程序来说是典型的,您只会收到停止世界GC的通知。因此,它不像Java等效方法那样完整,但也是有用的。
通过ETW日志记录还提供了相当多的与GC相关的信息。可能可以连接自己的ETW监听器并以这种方式提取信息,但我不知道是否有预先制作的方法可以这样做。