有時對比技術(shù)方案時古毛,我們需要統(tǒng)計一個頁面的內(nèi)存,cpu以及網(wǎng)絡(luò)消耗都许。然后通過求取平均值稻薇,獲得對比數(shù)據(jù)嫂冻。比如最近在預(yù)研webrtc和flvjs方案的內(nèi)存,cpu以及網(wǎng)絡(luò)消耗時颖低,思考了好久來尋找能夠很快對比絮吵,并且求取平均值的方式弧烤。
這種方式是基于mac系統(tǒng)命令來統(tǒng)計的忱屑,可能不適合windows用戶。
在chrome里比較推薦的性能分析方式就是使用開發(fā)者模式里的Performance暇昂,但是當我們真正使用他來對比兩種技術(shù)方案的內(nèi)存和cpu消耗時莺戒,發(fā)現(xiàn)很難獲取到直觀的數(shù)據(jù),Chrome Perfomance里的數(shù)據(jù)太詳細了急波,比較適合分析頁面卡頓从铲,性能不佳時使用,但是用戶對比兩種實現(xiàn)的性能差距澄暮,有點不好用名段。
統(tǒng)計內(nèi)存和CPU
其實我們可以發(fā)現(xiàn)在chrome里有個任務(wù)管理器,可以直觀地看到當前頁面的內(nèi)存和cpu消耗泣懊。但是不足的是伸辟,一直沒有找到可以求取平均值或者是繪制一段時間內(nèi)cpu、內(nèi)存曲線的方式馍刮。
但是信夫,我發(fā)現(xiàn)任務(wù)管理器這里不是提供了當前頁面的進程ID嘛。其實有了進程ID卡啰,我們可以自己用top
命令來看這個進程的內(nèi)存和CPU了静稻。還能打印出來每段時間內(nèi)的內(nèi)存和CPU的使用,這樣就可以隨意做圖或是求取平均值了匈辱。
使用下面命令就可以指定看一個進程的性能數(shù)據(jù)了
top -pid [進程id]
然后我們再用下面這個命令把這些數(shù)據(jù)導(dǎo)入到文件里振湾。
top -pid 46006 | grep 46006 > test1
如上兩列就是我們需要的內(nèi)容了,再把文件復(fù)制到excel里亡脸,然后分列押搪,就可以對這些數(shù)據(jù)隨意處理了。
統(tǒng)計網(wǎng)絡(luò)消耗
對于一般的網(wǎng)絡(luò)消耗梗掰,其實使用Chrome的network很方便嵌言,但是webrtc這種特殊的傳輸方式,在network里并看不到網(wǎng)絡(luò)消耗及穗,那么就需要尋找另外的方式了摧茴。最后發(fā)現(xiàn)mac上有個網(wǎng)絡(luò)分析工具,很強大—Nettop
這個東西能夠顯示當前電腦的網(wǎng)絡(luò)連接埂陆, 有了這個就可以看對應(yīng)連接的累計網(wǎng)絡(luò)消耗了苛白。當然娃豹,因為很底層,所以看到的信息很不友好购裙,各種信息都有懂版,想要找到對應(yīng)的數(shù)據(jù)還不太容易。
進入這個頁面之后可以按一下h
躏率,然后可以有幾個關(guān)鍵的按鍵介紹:
可以看到按p
可以選擇進程躯畴,然后可以看到下面的畫面:
用空格勾選到不需要的進程,然后就可以只看到想看的內(nèi)容了薇芝。
只留下chrome的蓬抄,然后就可以根據(jù)特征來尋找是哪個鏈接了,因為一般像視頻流是一直下載的夯到,會不停地增加嚷缭。
應(yīng)該有更好的工具來統(tǒng)計,但是最后找到了這種方式還算簡單易操作耍贾,而且對于內(nèi)存和cpu的分析可以直接拿到時間點的數(shù)據(jù)阅爽,可以自己更加靈活地做分析數(shù)據(jù)。
如果您還有什么更好的方式荐开,不妨分享出來付翁。