專用的效能監視工具

2021-10-24 21:52:49 字數 1605 閱讀 1847

到目前為止我們所看到的效能監視工具的原理,適用於從彙編和fortran直到ada這樣的程式語言,但是很多程式設計師現在使用更強大的語言。如何監視lisp或apl程式的計算效能?又如何監視網路或資料庫語言程式的計算效能?

我們打算用unix的管道(pipeline)作為更有趣的計算模型的例子。管道是一系列的過濾程式(filter):當資料流經每個過濾程式時,對資料施加變換。下面這個經典的管道按照頻率遞減順序列印某檔案中使用最多的25個單詞。

cat $* ¦

tr -cs a-za-z '\012' ¦

tr a-z a-z ¦

sort ¦

uniq  -c ¦

sort -r –n ¦

sed 25q

當用這個管道在一本大約6萬字的書中尋找25個最常見的單詞時,我們監視這個管道的效能。輸出的前6行是:

3463 the

1855 a

1556 of

1374 to

1166 in

1104 and

...

下面是對vax-11/750上計算的「管道效能監視」:

lines   words    chars       times

10717  59701    342233   14.4u 2.3s 18r  tr -cs a-za-z \012

57652  57651    304894   11.9u 2.2s 15r  tr a-z a-z

57652  57651    304894   104.9u 7.5s 123r  sort  

57652  57651    304894   24.5u 1.6s 27r   uniq –c

4731   9461    61830    27.0u 1.6s 31r   sort -rn

4731   9461    61830    0.0u 0.2s 0r    sed 25q

25   50     209

左邊幾列說明每個階段的資料:行數、單詞數、字元數。右邊部分描述了資料階段之間的過濾程式:用秒表示的使用者時間、系統時間以及真實時間,後面是命令本身。

這個效能監視結果給出了程式設計師感興趣的許多資訊。這個管道是快速的,處理150頁的書只需3.5分鐘。第一次排序花了這個管道57%的執行時間,這種經過仔細調優的實用程式很難再提速了。第二次排序只花了這個管道14%的時間,但是還有調優的餘地。這個效能監視結果還發現了管道中隱藏的一處小錯誤。unix高手們會樂於找出引入空行的地方。

這個效能監視結果也透露了檔案中單詞的資訊:共有57 651個單詞,但只有4731個不同的單詞。在第乙個翻譯程式之後,每個單詞有4.3個字母。輸出表明,最常見的單詞是「the」,佔了檔案的6%。6個最常見的單詞佔了檔案的18%。對英語中最常見的100個單詞做專門處理也許還能提高速度。試試看從這些計數中找出其他有趣的表面規律。

跟許多unix使用者一樣,我過去也用手工監視管道的效能,利用單詞計數(wc)命令來統計檔案,用time命令來統計程序。「管道效能監視工具」讓這個任務自動化了。用管道和一些輸入檔案的名稱作為輸入,產生效能監視結果作為輸出。2個小時和50行**就足以建立這個效能監視工具。下一節詳細闡述這個話題。

VS2010效能監視工具

程式設計珠璣 續 第一章中就介紹了效能監視工具,對於較簡單的程式來說,效能監視工具其實可以用變數累加來計算的,但是對於較複雜的程式來說就需要比較好的效能監視工具了。而vs2010提供了乙個效能監視工具,雖然我沒有寫過大型的程式,但是感覺還是很高大上的!效能監視工具的開啟 analyze launch...

Oracle效能監視

10g以前的監視方法,事情發生之後才去收集資訊,不能滿足實時解決問題的需求。10g版本新特性,前瞻性 實時性監測。記憶體監視器 memory monitor,簡稱mmon 記憶體監視燈 memory monitor light,簡稱mmnl 系統全域性區 system global area,簡稱s...

Mysql 監視工具

對於開發人員來說,最頭大的莫過於 你本地沒事,線上 錯誤日誌一堆。尤其是資料庫通訊那一層。sqlserver 有 sql profile 用來監視對應的server上的通訊日誌,引數 命令等資訊。mysql 還得敲一堆命令去.好吧,有一款好的跟蹤工具事半功倍。neor profile sql 用來跟...