Linux下用Google API繪製進程CPU佔用率餅圖

來源:互聯網
上載者:User

  感謝grapeot的啟發,用PowerShell畫出進程CPU佔用率的餅圖,我也做一個Linux下的版本。  我不熟悉Gnuplot,不知道能不能畫出餅圖。我這裡選用比較簡單且容易上手的Google API。先看一下吧:  首先是Google Chart API的靜態餅圖:

 

 

再看看Google前不久剛發布的Visualization API中的餅圖(點擊這裡查看實際效果,下面只是,我不知道怎樣在文章中嵌入js代碼……):

 

  下面上Bash指令碼的代碼(這個編輯器居然不支援Bash代碼高亮……我就用PS高亮代替吧,不過怪怪的……):

 1 #! /bin/bash
 2 
 3 function gen_chart() {
 4     chl="chl=$1"; chd="chd=t:$2"; shift ; shift
 5     while [ $# -gt 0 ]; do chl="${chl}|$1"; chd="${chd},$2"; shift; shift; done
 6     
 7     #URL="http://chart.apis.google.com/chart?chs=500x200&cht=p3&chtt=Top+10+Processes+Running&$chl&$chd"
 8     URL="http://home.ustc.edu.cn/~stephen1/pschart.html?chtt=Top+10+Processes+Running&$chl&$chd"
 9     chrome "$URL" 2>/dev/null
10 }
11 
12 gen_chart `ps -eo "%c%C" --sort=-pcpu | head -n 11 | tail -n 10`
13 

  原理很簡單,首先調用ps命令排序列印出當前各進程的CPU佔用率,然後取出前10項,剩下的事情就交給google API吧:-)

--------------------------- 完事分割線 ---------------------------

  感謝grapeot的分享。非常感歎PowerShell的強大。我之前以為PS僅僅是CMD的一個升級版本,只是增加一些小工具,現在發現我的直覺又一次錯了。從grapeot的介紹看,我認為PS的精髓在於物件導向的思想,命令之間傳遞的不是文本,而是對象。如果PS能搞出個支援傳遞對象的管道,也許就更強大了!

  微軟不僅努力降低終端使用者使用電腦的門檻,增強使用者體驗,同時也一直在努力降低開發人員的門檻,這也使得它在市場上有大量的Team Dev。Linux開發的門檻太高,不過,帶來的好處是,代碼品質普遍較高,程式執行效率高,但是使用者太可憐了……

 -------------------------- 又是分割線 ----------------------------

   誰能告訴我怎樣在這個部落格的文章中直接插入JavaScript代碼並能運行?另外,如果想在編輯器中增加一個Bash的代碼塊,該向誰反應? 多謝各位捧場~

 

轉載請註明出處:http://www.cnblogs.com/stephenjy/archive/2010/02/22/1671064.html   

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.