我創建了Windows Service上運行的WCF應用程序。它是使用Windows Installer安裝的。我遵循以下文章中提到的過程相同。WCF Windows服務每次調用後都不釋放資源/內存
http://msdn.microsoft.com/en-us/library/bb332338.aspx#msdnwcfhc_topic4
大多數WCF性能保持爲默認的net.tcp協議,每個呼叫實例等。
每次通話後服務內存消耗量不斷增加,不減少。最後它會拋出OutOfMemory消耗。
應用程序返回非常繁重的基於字符串的數據。使用內存分析器我發現內存仍然分配給字符串對象並在調用期間增加。
根據我的理解字符串是管理對象應該釋放數據一次超出範圍。
讓我知道是否需要具體的其他配置/編碼信息。
與其他任何東西一樣,字符串只有在沒有任何引用時纔會被釋放。如果你看到字符串沒有被釋放,那是一個症狀,而不是問題。找出哪個對象將持有該字符串的一個實例,然後找出誰仍然堅持對該對象的引用。或者忽略分析器中的字符串,並查看*你的*類中哪些被泄漏。 – 2010-09-22 12:31:37
我已經在perf mon中檢查了我的代碼中的大對象LOH msdn.microsoft.com/en-us/magazine/cc534993.aspx,發現它們存在。搜索網我找不到任何合適的方法來處理LOH行爲。 – BigBoss 2010-09-26 20:04:57