浅谈c#垃圾回收机制(GC)

写了一个window服务,循环更新sqlite记录,内存一点点稳步增长。三天后,内存溢出。于是,我从自己的代码入手,查找到底哪儿占用内存释放不掉,最终明确是调用servicestack.ormlite更新sqlite数据库造成的。至于是不是框架问题,可能性不大,因为本地模拟执行的代码没有任何问题。我觉得应该是orm在执行数据库更新后,对象还在被引用造成的。这里,我贴出一个伪代码:

//存放对象的一个列表 static List<Record> data=new List<Record>(5000); while(true){ var models = ReadDB(5000); data.AddRange(models); //更新model对象的字段 Dbhelp.UpdateAll(models);
data.Clear(); }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdgyd.html