1 程式構建
step1:配置檢測當前環境是否滿足安裝軟體的依賴關係以及初始化程式
./configure–help
./configure –prefix=/usr/local/snmps指定安裝路徑
step2:編譯原始檔編譯鏈結生成可執行檔案
make-f mymakefile編譯指定的makefile檔案,
以下編譯選項是指定使用者環境變數,右邊庫是左邊的前提:
step3:安裝將生成的可執行檔案拷貝到指定路徑
make install
2 程式除錯
gdb 程式互動除錯
$gdb programmer 啟動gdb
> break main 設定斷點
> run 執行除錯程式
> next 單步除錯
> print var1 使用print列印某個變數值
> list 顯示當前除錯處的源**
> info b 顯示當前斷點設定情況
pstack 跟蹤棧空間
$pstrack < pid >
thread 7 (thread 1084229984 (lwp 4552)):
#0 0x00000000006f172a in ub::netreactor::callback ()
#1 0x00000000006fbbbb in ub::ubtask::callback ()
#2 0x000000302b80610a in start_thread () from /lib64/tls/libpthread.so.0
strace 分析系統呼叫
常用來跟蹤程序執行時的系統呼叫和所接收的訊號。程序不能直接訪問硬體裝置,當程序需要訪問硬體裝置時,必須由使用者態模式切換至核心態模式,通過系統呼叫訪問硬體裝置。
$ strace -o output.txt -t -tt -e trace=all -p < pid >
$ strace -p 實時輸出程序執行系統呼叫的情況
$ strace -f -f -o ~/straceout.txt myserver 跟蹤可執行程式
size 檢視程式記憶體占用
檢視程式執行時各個段的實際記憶體占用
$size a.out
text data bss dec hex filename
1146 256 8 1410 582 a.out
file 查詢檔案型別
$file a.out
strings 查詢資料中的文字資訊
$strings
fuser 顯示檔案使用者
顯示所有正在使用著指定的file, file system 或者 sockets的程序資訊
$fuser -m -u redis-server
$fuser –k /path/to/your/filename
3 效能優化
主要從兩個層面來介紹:系統層面和程式層面
分析系統瓶頸
top輸入m,檢視記憶體使用情況,檢測記憶體洩漏;
輸入p,檢視cpu情況:
%id空閒cpu值過低,則cpu存在瓶頸
%wa等待io的cpu過高,則io存在瓶頸
分析記憶體瓶頸
free更直觀詳細的檢視記憶體情況
系統實際可用的記憶體為free工具輸出的free+buffer+cached
缺少記憶體,系統響應變慢很明顯,因為這使得系統不停的做換入換出的工作
vmstat實時動態監視作業系統的記憶體和虛擬記憶體的動態變化
分析io瓶頸
iostat
分析程序呼叫
pstack
strace
優化程式**
二八法則:先優化最重要的少部分**
編完**,再優化:強調效率和可讀性
效能分析工具
gprof
> g++ -pg -o test main.cpp 使用-pg引數在目標**中插入用於效能測試的**片斷
> ./test 輸出gmon.out的效能資料檔案
> gprof test gmon.out 分析程式執行資訊
oprofile
sar
除錯記憶體洩漏
valgrind
ref:
Linux yum工具基本概述
1 yum是yellowdog update manager的簡稱,它能夠實現rpm管理的所有操作,並能夠自動解決各rpm包之間的依賴關係。2 yum是rpm的前端工具,是基於rpm來實現軟體的管理的乙個工具 3 不能用yum去管理windows的exe程式包,也不能用yum去管理ubuntu的de...
ABAP開發工具概述
在學習這門語言之前,讓我們先看看sap的二次開發具有哪些工具和技術 這裡給大家乙個overview 1 report 報表 報表程式的主要作用是從資料庫中抓取資料通過整理陳列出來,給企業高層或具有相關需求的人員檢視。如無特殊需求,此類程式一般不需客製screen menu title。a abap ...
Linux筆記 Linux概述
1 前邊root 當前使用者的賬號 2 後邊localhost 主機名 3 當前所在目錄 使用者的資料夾,是個變數。eg 對root,等價於 root 對vbird 一般使用者 等價於 home vbird 4 提示符 root 一般使用者提示符 root localhost command opt...