監控某程式記憶體佔用異常

白馬酒涼發表於2013-11-20

1.利用tasklist命令把以T開頭的程式PID值和佔用記憶體的資訊
--------------------->>d:\test.txt
echo %time% >>d:\test.txt
tasklist /fi "IMAGENAME eq T*" /fo list >>d:\test.txt
echo  --------------------->>d:\test.txt

相關介紹如下,其中/svc和/v有更詳細點的資訊
http://baike.baidu.com/link?url=wGjl0Cbv7F8ogB3r3HKpk105lPtcQiG50BAPCnuZkzG6c3Te2BKrsekLOI9iwgU05utDhSpBAmxP5B486nGgiK

此命令在win2003下路徑是C:\Documents and Settings\username
在WIN7下路徑是C:\WINDOWS\System32

2.利用schtasks命令將此bat檔案每2分鐘執行一次
schtasks /create /tn Mytask /tr d:\test.bat /sc MINUTE /mo 2

3. 在C#下得知此程式相關資訊

System.Diagnostics.Process.GetCurrentProcess().PrivateMemorySize64 / 1024
http://hi.baidu.com/rinehart/item/bb96c02894cc60f950fd87fd

 
4.System.Exception屬性
ex.Message 錯誤訊息 
ex.StackTrace錯誤堆疊
ex.TargetSite.Name 方法名
ex.TargetSite.DeclaringType.FullName類名
ex.InnerException.Message成員名

5.託管記憶體與非託管記憶體
.NET簡談互操作(四:基礎知識之Dispose非託管記憶體)
http://www.cnblogs.com/wangiqngpei557/archive/2011/06/29/2093345.html

發現並防止託管程式碼中出現記憶體洩漏
http://msdn.microsoft.com/zh-cn/magazine/cc163491.aspx

相關文章