2012-07-17 64 views
0

我遵循以下教程中的建議:http://humblecoder.co.uk/tag/windbg。我必須指出,說,運行這個命令:!dumpheap。我在第三列中添加了總字節數,並再次將其分爲1024和1024。這相當於42MB。有問題的ASP.NET進程大小超過1.5GB。ASP.NET內存泄漏 - OracleConnection/OracleCommand

這是在Windows 2003服務器上完成的,因爲沒有選項可以在任務管理器中創建轉儲文件。因此,我必須運行以下cmmand:.dump/ma w3wpdump.dmp。由於這是一個小型轉儲,有沒有可能幫助的東西?

我沒有問這個昨天,其中概述了問題的另一個問題:ASP.NET Memory Leak - OracleCommand Object

回答

0

看你的另一個問題是,似乎絕大多數的內存使用量正在使用的字符串。我會轉儲一些字符串來查看它們內部的內容。您可以使用dddbdu來查看字符串的內容,併爲其指定一個字符串實例的內存地址。即dd 0x12345678,它會轉儲位於那裏的內存的原始內容。您可以查看windbg幫助以獲取有關d*命令的更多信息。

但是,如果您確定託管堆似乎沒有佔用內存,那麼我會查看非託管堆。 !heap -s會給你一個非託管堆的摘要,這可能是你有多餘的內存使用情況。

+0

謝謝。有很多串聯在一起的字符串。我知道我應該使用StringBuilder對象。我以前的帖子表明,有19472876字節分配給字符串 - 這是18MB。你會說這是相當多的。 18MB對我來說不太好。創建/使用字符串時是否使用了非託管資源? – w0051977 2012-07-18 08:33:44

+0

對不起,當我第一次看到它們時誤讀了數量。在這種情況下,我會檢查unmanged堆。 – Zipper 2012-07-18 13:52:54

+0

你認爲有很多字符串?我沒有什麼可比的。 – w0051977 2012-07-18 13:58:52