Oprofile編譯與安裝

  1. 概述

oProfile是用于Linux的若干種評測和性能監(jiān)控工具中的一種,它可以工作在不同的體系結(jié)構(gòu)上,包括MIPS、ARM、IA32、IA64和AMD。oProfile包含在Linux2.5和更高版本的內(nèi)核中,也包含在大多數(shù)較新的Linux版本中,包括RedHat9。
oProfile是Linux平臺上的一個功能強(qiáng)大的性能分析工具,支持兩種采樣(sampling)方式:基于事件的采樣(eventbased)和基于時間的采樣(timebased)。

基于事件的采樣是oProfile只記錄特定事件(比如L2 cache miss)的發(fā)生次數(shù),當(dāng)達(dá)到用戶設(shè)定的定值時oProfile就記錄一下(采一個樣)。這種方式需要CPU內(nèi)部有性能計數(shù)器(performace counter)。

基于時間的采樣是oProfile借助OS時鐘中斷的機(jī)制,每個時鐘中斷oProfile都會記錄一次(采一次樣),引入此種采樣方式的目的在于提供對沒有性能計數(shù)器的CPU的支持,其精度相對于基于事件的采樣要低。因為要借助OS時鐘中斷的支持,對禁用中斷的代碼oProfile不能對其進(jìn)行分析。

oProfile在Linux上分兩部分,一個是內(nèi)核模塊(oprofile.ko),一個為用戶空間的守護(hù)進(jìn)程(oprofiled)。前者負(fù)責(zé)訪問性能計數(shù)器或者注冊基于時間采樣的函數(shù)(使用register_timer_hook注冊之,使時鐘中斷處理程序最后執(zhí)行profile_tick時可以訪問之),并采樣置于內(nèi)核的緩沖區(qū)內(nèi)。后者在后臺運行,負(fù)責(zé)從內(nèi)核空間收集數(shù)據(jù),寫入文件。

oprofile-1.0.0,下載地址:http://sourceforge.net/projects/oprofile/files/oprofile/
安裝:

./configure make & sudo make install

  • ERROR1:configure:error:popt library not found

下載popt-1.16,下載地址:http://www.linuxfromscratch.org/blfs/view/svn/general/popt.html
./configure make & sudo make install
繼續(xù)進(jìn)入oprofile目錄執(zhí)行
./configure

  • ERROR2:configure:error: liberty library not found

下載binutils-2.25,下載地址:http://ftp.gnu.org/gnu/binutils/?C=M;O=D

./configure --with-sysroots  
make clean  
make  
sudo make install  

繼續(xù)進(jìn)入到oprofile目錄執(zhí)行./configure

  • ERROR3:configure:error:liberty library not found

該庫也是在binutils中,在libiberty下,由于libiberty的configure沒有提供--enable-shared選項,所以需要我們自己制作so文件,編輯Makefile,加上-fPIC編譯選項,然后利用make gcc生成so:

cd libiberty //進(jìn)入該目錄  
./configure  //完成之后會有個Makefile文件產(chǎn)生  
vi Makefile  //編輯該文件,找到并修改該行為: CFLAGS = -g -O2 -fPIC 保存  
make clean  
make  
gcc -shared *.o -o libiberty.so  //生成.so文件,把該文件拷到/usr/lib中  
sudo cp libiberty.so /usr/lib/libiberty.so 

最后還需要bfd的動態(tài)鏈接庫,也是在binutils中,在bfd中,由于自帶的configure可以加入--enable-shared,所以可以利用該參數(shù)自動生成.so文件到/usr/lib中

cd bfd  
./configure --enable-shared  
make clean  
make  
sudo make install  

最后回到oprofile目錄中再安裝一遍:

./configure  
make clean  
make  
sudo make install  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢閱讀 100,605評論 9 468
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,200評論 2 33
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,534評論 19 139
  • 我們說的Linux其實指的就是 內(nèi)核(kernel)而已。這個內(nèi)核控制你主機(jī)的所有硬件并提供系統(tǒng)所有的功能,所以它...
    Zhang21閱讀 7,669評論 0 18
  • 姓名:吳兆陽 學(xué)號:14020199009 轉(zhuǎn)自韋東山 嵌牛導(dǎo)讀:對嵌入式初學(xué)者,沒有足夠的視野選擇一個合適投入方...
    吳兆陽閱讀 2,514評論 0 4

友情鏈接更多精彩內(nèi)容