https://tracingsummit.org/ts/2016/files/Uftrace_-_TracingSummit_2016.pdf
uftrace c++ veya c kodları için bir tracing aracı. Kodu derlerken -pg parametresi eklenir.
g++ kvm.cpp -lpthread -pg
Sonrasında record başlatılır.
uftrace record -k ./a.out
-k parametresi ile kernel fonksiyonlarına erişim izni alabiliyoruz.
sudo sh -c 'echo 1 >/proc/sys/kernel/perf_event_paranoid'
bu komut sayesinde de linux'da tracingin açık olup olmadığına bakabiliriz.
Uftrae trace dosyaları oluşturuyor burada. Sonrasında bunları görsel bir şekilde görmek istersek chrome dump'ı kullanabiliriz.
uftrace dump --chrome > b2.profile
Sonrasında
Chromium
'a girerek
chrome://tracing
yazarak trace arayüzünü açabiliriz.
trace data'sını almak istersek
uftrace info
# process information
# ===================
# number of tasks : 10
# task list : 17185(a.out), 17191(a.out), 17192(a.out), 17193(a.out), 17254(a.out), 17275(a.out), 17304(a.out), 17363(a.out), 17384(a.out), 17411(a.out)
# exe image : /home/a.out
# build id : asd
# pattern : regex
# exit status : exited with code: 0
# elapsed time : 18.102729312 sec
# cpu time : 0.015 / 14.080 sec (sys / user)
# context switch : 42 / 284 (voluntary / involuntary)
# max rss : 5760 KB
# page fault : 0 / 410 (major / minor)
# disk iops : 0 / 8 (read / write)