我想在運行時監視進程的資源使用情況(時間,內存,系統調用),在Windows中是否存在apis,如ptrace,setrlimit在linux中? 謝謝如何在運行時監視進程的資源使用情況(時間,內存)?
-2
A
回答
0
還有一堆取決於你想在C/C什麼++的API(或C#通過的P/Invoke):
例如,開始找,
過程CPU時間(UM/KM) : http://msdn.microsoft.com/en-us/library/ms683223(VS.85).aspx
過程VM(工作組): http://msdn.microsoft.com/en-us/library/ms683226(v=VS.85).aspx
過程I/O數據: http://msdn.microsoft.com/en-us/library/ms683218(v=VS.85).aspx
你可以嘗試這些來開始。
0
有幾種方法。首先,您會希望將流程作爲低完整性流程運行。這與Internet Explorer的運行方式類似;這些進程與其他進程,註冊表和文件系統(除選定的低完整性目錄之外)隔離。
其次,你在控制可執行文件。您應該列出允許使用哪些DLL和功能的白名單。黑名單中只有CreateProcess
的變體太多。這甚至可能需要重建CRT以消除危險功能。
沙盒C#代碼有點容易。您顯然必須將其限制爲安全代碼。 PEVerify可以幫助那裏。
0
您可以使用ProcMon,Process Explorer,ProcessMonitor和Performance監視器等系統工具進行此類分析。跟蹤系統調用實際上是一項艱鉅的工作,將會有數百個系統調用將由應用程序進行。我認爲你必須使用一些像Inter VTune Analyzer這樣的工具來進行這種類型的深度剖析。
相關問題
- 1. 如何在運行時監視shell腳本的內存使用情況?
- 2. Solaris上運行時進程的當前內存使用情況
- 3. 分析Linux上長時間運行的進程的資源使用情況--CPU,內存,硬盤驅動器?
- 4. 監視子進程的內存使用情況
- 5. 如何監視隨着時間的推移進程的內存使用情況 - Ubuntu的
- 6. 從進程開始到結束監視內存使用情況
- 7. Redis - 監視內存使用情況
- 8. visualvm監視內存使用情況
- 9. Java - 我如何監視其他進程的內存和CPU使用情況
- 10. 如何在Solaris上監視Perl中的內存使用情況?
- 11. WebClient在長時間運行過程中的內存使用情況
- 12. 在Linux中監視程序的內存使用情況
- 13. 如何監視Glassfish的內存使用情況?
- 14. 如何估算運行PHP代碼時的資源使用情況
- 15. .NET運行時對象的內存佔用情況如何?
- 16. 監控進程的CPU和內存使用情況
- 17. 如何監視新的根進程的執行情況?
- 18. 應用程序池內存使用情況監視器
- 19. 在運行時動態確定內存使用情況
- 20. 監視另一臺服務器上的進程的內存使用情況
- 21. OS X上長時間運行的進程使用的內存
- 22. 如何從java應用程序獲取進程(外部程序)時間,進程運行的CPU使用情況?
- 23. 監視Windows中特定進程的內存和處理器使用情況?
- 24. 輪詢C#應用程序在運行時的內存使用情況?
- 25. 監視Windows上的進程正常運行時間
- 26. 由Gnome資源監視器報告的C++程序中的內存使用情況:混淆
- 27. 如何監控在Heroku上的內存使用情況(node.js的)
- 28. Android正在運行的應用程序內存使用情況
- 29. 如何在使用BeginInvoke進行多線程時鎖定資源?
- 30. 監控進程內部的unix資源
您可以在編譯時監視資源使用情況嗎? :P你在找什麼是稱爲分析器的工具。在Web上搜索C++/C#分析器。 –
感謝您的建議。我試圖在Windows上編寫簡單的在線裁判,它可以編譯用戶的代碼並在有限的時間和內存中運行程序,如https://www.spoj.pl。因此,我需要一些建議我應該用什麼winapis。 – shiwei
解釋更多你需要的東西。這聽起來像是你想限制一個進程被允許使用多少內存和多少CPU時間。是這樣嗎?請根據記憶來定義你的意思,因爲有很多不同的指標。 –