我的一个服务程序,从开始启动的15M左右,内存使用不断的增加。
主要有以下几个操作:
1. 实时扫描数据库的两张表,这个动作放在线程里面进行处理的
while(true)
{
Thread.Sleep(100);
....
}
3.程序里面有几个队列,作为缓冲区用,也有线程实时扫描这个几个队列。
我的使用率非常高的类,没有实例化IDisposable接口,感觉没必要实现这个接口,因为里面成员全都是值类型的,属于托管资源。
现在,我实在是找不到到底是什么原因导致内存没有释放,请各位大牛提提意见,在此跪谢啦~~~
是否是集合不断的增加了内容,或者循环内使用,最好手动清空集合或对变量设置为null,Thread.Sleep(100);这么短的时间估计GC处理会有一定的问题
估计是GC压力太大或其他的内存泄露,关于GC参考CLR Via C#这本书对应的章节,理解了GC和内存泄露可以解决你这个问题