2010-02-02 27 views
0

在我的Windows服務中,在巨大的工作負載下運行數小時後,我遭受了「內存不足」異常的困擾。 我用下面的性能計數器來檢測內存泄漏:越來越多的「虛擬字節」性能計數器

  • 字節的所有堆

  • 專用字節
  • 虛擬字節

第2個計數器會向上和向下定期...我看不出他們有什麼不妥。 但第三個增長速度非常緩慢,櫃檯也在升降,但最終會逐漸增加。 這是什麼意思?

我的Win服務是.NET,它從C++ DLL調用一些函數,也使用第三方,它有一些非託管代碼。

這是否表明託管代碼/非託管代碼中存在內存泄漏?或者乾脆這不會幫助?

感謝

+0

沒有足夠的信息來回答問題。你在C#代碼中分配內存嗎?你可以發佈代碼嗎? – 2010-02-02 14:40:49

+0

C++ DLL不是我的代碼,它們都是第三方,我在我的託管代碼中分配和釋放大量資源,我不能將它們全部發布,它們太多了,其中一些與GDI +,ADO有關。 NET和許多其他類型的對象。我也相信非託管代碼經常這樣做(由於其功能) – 2010-02-02 15:02:58

回答

1

看看在clr profiler這樣就可以監視您的使用。如果它僅在hudge負載下崩潰,那麼可能不會有任何錯誤,因爲處理負載的新設計約束是如此之多。

+0

嗯,我不知道爲什麼這個分析器不喜歡我的Win服務,他總是顯示一個對話框:「等待服務啓動公共語言運行時「,該配置文件能夠啓動該服務,但隨後他正在顯示該對話框。 – 2010-02-03 12:32:20