我已經在C#(.net 3.5)中開發了一個在系統托盤中運行的小應用程序。基本上,它每5分鐘檢查一次rss-feed,如果自上次檢查以來有新的提要,它會顯示一個提示,並且還會使用.net 3.0/3.5中的文本到語音引擎來讀取標題提取的Feed的數量。托盤應用需要40mb xp和10mb win7
它工作正常,但我注意到在Windows7上運行時需要大約9-10mb,但在XP中需要39-40mb。 我不知道爲什麼。有人知道這可能是什麼嗎?
我已經在C#(.net 3.5)中開發了一個在系統托盤中運行的小應用程序。基本上,它每5分鐘檢查一次rss-feed,如果自上次檢查以來有新的提要,它會顯示一個提示,並且還會使用.net 3.0/3.5中的文本到語音引擎來讀取標題提取的Feed的數量。托盤應用需要40mb xp和10mb win7
它工作正常,但我注意到在Windows7上運行時需要大約9-10mb,但在XP中需要39-40mb。 我不知道爲什麼。有人知道這可能是什麼嗎?
也許是因爲windows 7在其某些組件中使用了.net,所以很多內存在您的進程和系統之間共享。
在XP中,所有.Net程序集都不會被系統的某個進程加載,因此內存在您的進程中顯示爲私有。
您是否從taskmanager的Mem Usage列中讀取數據?然後你正在查看工作集大小。加載到RAM中的應用程序使用的活動內存量。這可能不是你想要比較的。嘗試最小化您的應用程序。瞭解Mem Usage如何顯着下降。這並不意味着應用程序在將其最小化時使用更少的內存。這意味着Windows認爲你不會很快使用該應用程序,並將內存從RAM交換到分頁文件。您可能希望查看VM Size列以進行比較。當然,你仍然可以問自己爲什麼工作集大小不同,但這個問題很難回答。另請參閱here瞭解不同記憶讀數的解釋。
嗯..這似乎是邏輯,謝謝! –
您可以使用Sysinternals(http://technet.microsoft.com/en-us/sysinternals/dd535533.aspx)或(帶有SOS擴展名的WinDBG)(更高級的工具)的VmMap檢查進程的內存使用情況。 – munissor