Golang的pprof的使用心得(CPU,Heap)

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

參照的是https://github.com/caibirdme/hand-to-hand-optimize-go 這個文章

寫一段代碼測試

首先自己寫一段demo

裡面負責2件事

doSomeThingOne

genSomeBytes

運行這個程式go run main.go

安裝wrk

To install thewrk,you need only:

git clonehttps://github.com/wg/wrk.git

cd wrk

make

wrk relies on the openssl and luajit, learn more from its github page

Generating requests

Our demo is listening on the port9876,so let's generate some requests for that.

./wrk -c400 -t8 -d5m http://localhost:9876/test

-c400means we have 400 connections to keep open

-t8means we use 8 threads to build requests

-d5mmeans the duration of the test will last for 5 minutes

用這段命令來壓伺服器

觀看結果

Our server is very busy now and we can see some information via browser. Inputlocalhost:9876/debug/pprofyou will see:



然後用命令進入



在這裡能看見各種方法的已耗用時間



但是很不直觀對不對


所以我們安裝Graphviz 在mac下

brew install graphviz

之後再這個(pprof)裡面輸入web

會生產一個svg檔案

用瀏覽器開啟我們就會看到



很顯然gensomebytes裡面的math方法最消耗時間。這個就是我們最佳化的對象

記憶體怎麼看呢?

其實也很方便在

localhost:9876/debug/pprof/profile改成

localhost:9876/debug/pprof/heap


後面的結果一樣。。和cpu一樣可以看到那個heap佔用了大量的記憶體到時候最佳化吧

https://studygolang.com/articles/1720 這個文章裡面的第一個方法就可以做測試記憶體佔用的.

有空試試把

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.