1. 程式人生 > >系統技術非業餘研究 » erlang的profile工具原理和優缺點

系統技術非業餘研究 » erlang的profile工具原理和優缺點

erlang的tools application下包含了一系列的profile工具, 包括 eprof cprof fprof, 具體的使用可以參看文件和<< erlang effective guide>>.

我這裡要說的是他們的工作原理。 這些模組的核心都是根據erlang的trace機制實現的。在模組執行的時候,trace機制會通知那個函式被呼叫 返回。根據這些資訊就可以統計出來函式呼叫的頻度,呼叫棧等。

但是利用這個機制會有嚴重的效能損失。因為每個函式呼叫都要傳送一條trace資訊,每個trace 資訊會引起上下文切換 而且要耗費2-3的時間。這個對大型的系統是不可接受的。

所以知道這些原理以後, 我們在profile大型的系統的時候,我們可以在dbg模組的幫助下, 只收集我們感興趣的東西,而且嚴格限定範圍,避免對系統造成大的干擾,這樣收集出來的東西才有意義。

Post Footer automatically generated by wp-posturl plugin for wordpress.

No related posts.

相關推薦

系統技術業餘研究 » erlang高階原理應用PPT

公司培訓用的 湊合看吧 主要講erlang系統的特點,分佈叢集以及mnesia的使用, 從比較高的角度來看erlang, 讓你有了大體觀. Post Footer automatically generated by wp-posturl plugin for wordpress. No

系統技術業餘研究 » cover的原理及其啟示

我們先看下cover模組的功能: The module cover provides a set of functions for coverage analysis of Erlang programs, counting how many times each executable line

系統技術業餘研究 » 新的工作研究方向

和大家更新下: 做了將近8年資料庫後,我的工作和研究方向將會延伸到虛擬化和計算相關的雲服務,希望能夠和大家一起進步,Happy New Year! 預祝大家玩得開心! Post Footer automatically generated by wp-posturl plugin for w

系統技術業餘研究 » Linux下FioBlktrace模擬塊裝置的訪問模式

我們在做塊裝置調優的時候, 我們關心的是塊裝置是如何被訪問的,也就是訪問模式(比如說每次從什麼地方讀,每次讀多少塊,熱點在哪裡等),至於每次讀寫的什麼資料我們並不關心. 這些模式當然可以自己去構造,但是如果能把真實應用的訪問模式記錄下來,並且在調優的時候能重放,我們就可以一遍又一遍的除錯直到達到最

系統技術業餘研究 » leveldb效能分析表現

Leveldb是一個google實現的非常高效的kv資料庫,目前的版本1.2能夠支援billion級別的資料量了。 在這個數量級別下還有著非常高的效能,主要歸功於它的良好的設計。特別是LSM演算法。 那麼資料庫最怕的的隨機IO他是如何解決的呢? 先說隨機寫,它的寫都是先記錄到日誌檔案去的,在日

系統技術業餘研究 » erlang的profile工具原理優缺點

erlang的tools application下包含了一系列的profile工具, 包括 eprof cprof fprof, 具體的使用可以參看文件和<< erlang effective guide>>. 我這裡要說的是他們的工作原理。 這些模組的核心都是根據erla

系統技術業餘研究 » Fio IO效能測試工具介紹

官網:http://freshmeat.net/projects/fio/ fio is an I/O tool meant to be used both for benchmark and stress/hardware verification. It has support for 13

系統技術業餘研究 » nmon(Linux下很好用的效能監測工具)介紹

The nmon tool is designed for AIX and Linux performance specialists to use for monitoring and analyzing performance data, including: * CPU utiliz

系統技術業餘研究 » LMbench 實用的微觀效能分析工具

我們在做高效能服務的時候,通常需要避免7宗罪,比如說記憶體拷貝,昂貴的系統呼叫等等。 但是這些罪的代價是多少,我們並不清楚。 在設計的時候,我們會需要根據資料去做方案的取捨。但是這些測量資料哪裡來呢? google大神是個很好的地方,但是有很多缺點,首先你需要的知識是分散的,第二你需要的知識是二手

系統技術業餘研究 » iozone檔案系統性能測試工具

IOzone官網: http://www.iozone.org/ IOzone is a filesystem benchmark tool. The benchmark generates and measures a variety of file operations. Iozone has

系統技術業餘研究 » Erlang強大的程式碼自動重構工具 tidier

Jan 29, 2010 We are very happy to announce the website of Tidier, an automatic refactoring tool for Erlang programs. Tidier cleans up Erlang source c

系統技術業餘研究 » erl命令列工具鏈的設計思路

erlang otp標準釋出包裡面的命令列工具都在bin目錄下 dialyzer erlc escript typer erlang的這些命令列工具基本上都是erl模組的c的wrapper, 最後都是呼叫erl來執行相應的模組完成任務。 實驗如下: [email protected]:~

系統技術業餘研究 » 區域性性原理在計算機分散式系統中的應用課程PPT

這個課程最主要focus在資料的區域性性原理,從硬體到作業系統到應用程式這樣的順序過來的,對於我們提高核心系統軟體的效能非常有啟發意義. 課件下載點選這裡 修正:由於原連結已經不存在了,特地在這裡放了一份。 以下是教程的介紹: 課程簡介 ___________________________

系統技術業餘研究 » Tsung壓力測試工具介紹PPT

準備為測試部門的同學作個Tsung的講座, 點選下載Tsung 需要進一步瞭解Tsung的同學 點這裡看官方的文件! 想了解如何使用的還可以到Erlang china這裡看看! Post Footer automatically generated by wp-posturl plugin f

系統技術業餘研究 » Inside Erlang VM(你需要知道的VM原理)

公司培訓用的文件, 對於Erlang的VM會有個大體的認識, 方便設計和使用Erlang. 點解下載pdf格式的文件 Post Footer automatically generated by wp-posturl plugin for wordpress.

系統技術業餘研究 » 調研核心呼叫棧方便的工具 kmalloc

我們在研究核心的時候,看了核心程式碼後,就想著某個函式被誰誰呼叫。 呼叫路徑有很多條,有熱門的,有偏門的,但從程式碼不大容易看出。 如果我們能和gdb那樣在函式上設個斷點,看下核心函式的呼叫棧就清楚了。 但是如何統計熱門路線呢?用systemtap就可以,參看這裡, 這裡。 但是用systemt

系統技術業餘研究 » Fio壓測工具io佇列深度理解誤區

Fio 是個強大的IO壓力測試工具,我之前寫過不少fio的使用和實踐,參見 這裡。 隨著塊裝置的發展,特別是SSD盤的出現,裝置的並行度越來越高。利用好這些裝置,有個訣竅就是提高裝置的iodepth, 一把餵給裝置更多的IO請求,讓電梯演算法和裝置有機會來安排合併以及內部並行處理,提高總體效率。

系統技術業餘研究 » Linux下方便的塊裝置檢視工具lsblk

之前在Linux下看有什麼塊裝置,通常都用fdisk什麼的或者直接ls /dev/ 人肉去看看, 很土,不方便。 前二天在江楓的網站上看到了介紹的lsblk,這玩意不錯,推薦給大家。 這個工具屬於util-linux-ng包,在RHEL 6.1上是安裝好的啦,直接用就好。 ubuntu高版本下也有

系統技術業餘研究 » ftrace它的前端工具trace

最近在調查lockless的ring_buffer的時候,發現了ftrace. ftrace是 Linux 核心中提供的一種除錯工具。使用 ftrace 可以對核心中發生的事情進行跟蹤,這在除錯 bug 或者分析核心時非常有用. ftrace在2.6.28-rc2以後的Linux核心都支援

系統技術業餘研究 » Linux常用效能調優工具索引

霸爺您好,麻煩請教個問題,我們最近一個專案上有個奇怪的問題,基於實時linux系統,兩個實時執行緒通過mq_send傳送訊息,A發訊息給B,是非阻塞的訊息佇列,A傳送訊息B進行處理,A傳送訊息後發現mq_send的開銷與B對該訊息的處理時延相關,也就是說B處理的快,那麼A呼叫的mq_send返回