12

我試圖加快編譯我的應用程序的時間,我正在研究的一件事是檢查哪些資源,如果有的話,我可以添加到生成機器來加快速度。爲此,我該如何確定是否應該投資更多的CPU,更多的RAM,更好的硬盤或者進程是否受到其他資源的約束?我已經看到了這個(How to check if app is cpu-bound or memory-bound?),我正在尋找更多的提示和指針。如何判斷我的進程是CPU限制,I/O限制,內存限制還是

我試過到目前爲止:

  • 時間對我的本地機器上構建機器與過程。我發現生成機器的時間是我的機器的兩倍。

  • 運行「資源監視器」並查看進程運行時的CPU使用情況,內存使用情況和磁盤使用情況 - 在此過程中,我無法解釋數字,主要是因爲我不明白每列的含義以及如何轉化爲虛擬機與物理盒以及它對於多CPU盒的含義。

+0

從您的問題中很難判斷出:構建虛擬機的機器是?虛擬機的性能調整可能最終與物理機器完全不同。 – 2010-11-24 06:55:04

回答

2

開始>運行> PERFMON.EXE

性能監視器可以繪製一個你可以用它來推斷瓶頸在哪裏,包括CPU負載,IO操作,頁面文件命中等多系統指標。

此外,Platform SDK現在包含一個名爲XPerf的工具,可以提供更多與開發人員相關的信息。

0

Random-pausing會告訴你CPU和I/O時間之間的百分比是多少。基本上,如果抓取10個隨機堆棧,並且如果80%(例如)時間在I/O中,那麼在8 +/- 1.3個樣本上堆棧將進入讀取或寫入的系統例程一個緩衝區。 如果您想要更高的精度,請採取更多樣本。