[严重问题]如何提高程序性能,解决内存不能为READ问题?
情况描述:
我做了一个短信服务程序,是用WIN FORM程序实现的。其中开了三个线程,分别监听数据库、服务器端消息(短信MO)、系统时间。其中用到由一个VC的DLL来做与服务器间的通讯。
病状:
现在程序每隔两天或五天或者一天都会出现一次“内存不能为READ”的系统提示,点确定后程序终止。
目前情况:
开始我怀疑是因为没有释放资源、或者是没处理好异常。但经我反复的检验和修整代码后情况依旧!.NET具备垃圾回收功能,并坚信.net不存在内存泄漏问题,就是有程序错误跳出来的也不应该是内存不能为READ的系统错误信息呀!
通过GOOGLE我怀疑ThreadPool的问题,可是我根本就没有用到它。
再GOOGLE我怀疑net中的LOH(Large Object Heap)害人不浅,你如果频繁的创建大于85k的大对象,比如用string表示的文本文档,就会感觉出现了内存泄漏,应用程序占用的内存一个劲儿往上升,直到出现out of memory为止。但还是找不到解决的方法...
问题:
1.问题出在哪里?如何做象内存出错的跟踪调试?
2.如何解决?如何让我们的程序稳定起来,长久不衰!