使用队列/列表的内存泄漏

时间:2014-08-28 10:45:19

标签: c# collections memory-leaks out-of-memory

我正在使用队列和列表。

list对象添加了字符串,Queue对象写入了字节数组。

在我的开发PC上,这是一个四核,没有内存问题。

在我的测试电脑上,这是一个双核,应用程序退出,因为在运行大约8小时后出现内存异常。

我一直在使用JetBrains dotMemory分析器来尝试精确定位内存过载的位置。

我追踪了两个罪魁祸首,它告诉我一些字节(随着时间的推移会增加)不会从队列中释放出来,但队列数却为零。

同样适用于列表对象。它告诉我,已经添加到列表(并删除)的字符串尚未从内存中删除。

我正在使用.Net 4.0和C#。

我正在考虑设置容量和TrimAccess方法。我还读到使用框架的4.5将使这个问题消失。

虽然我设置了我的测试(这将需要几个小时才能运行),但我会先发制人说这不会给我我需要的解决方案,所以我也在这里提出问题/困境。

由于

我的字节队列代码是这​​样的:

Queue<byte[]> byteQueue = new Queue<byte[]>() //module declaration    

//Somewhere in a function:        
byte[] imageInBytes = //convert image to bytes    
byteQueue.Enqueue(imageInBytes);


//Elsewhere in a a function:    
byte[] retreivedBytes = byteQueue.dequeue();    
//post byte array to a WCF service.

0 个答案:

没有答案