我对一个多线程应用程序使用C#2.0,该应用程序每秒从非托管dll接收至少千次回调,并定期将消息从套接字发送出去。 GUI仍然在主线程上。C#内存泄漏第0代和第1代在perfmon中不断增加 - 这是什么意思?
我的应用程序大多是在启动时创建对象,并定期执行的短暂期间。
我遇到的问题是周期性的延迟尖峰(用时间来测定冲压在开始和结束的功能),我想发生GC运行时。
我跑perfmon的,这里是我的意见......
GEN0堆大小为平与定期秒杀每隔几秒钟秒杀。
Gen1堆大小始终在卷上。向上和向下
Gen2堆大小遵循周期。它不断增加,直到它变得平坦一段时间然后下降。
Gen 0和1集合总是增加1到5个单位的范围。第2代集合是不变的。
这与内存泄漏有什么关系?你只是对GC的工作方式进行一些测量,并询问为什么它的行为是一个很好的,合理的问题。但不要认为这是内存泄漏。 – jalf