gperftools documentation說libprofiler
應該被鏈接到一個目標程序:gperftools CPU分析器到底有多精確?
$ gcc myprogram.c -lprofiler
(不改變程序的代碼)。
然後程序應該與特定的環境變量來運行:
CPUPROFILE=/tmp/profiler_output ./a.out
的問題是:如何libprofile
有機會開始和結束時,它僅僅是加載一個分析器,但它的功能不叫?
該庫中沒有構造函數(proof)。 All occasions of "CPUPROFILE"庫代碼不涉及探查器啓動的任何地方。
我沒有想法,在哪裏看下?
嗨Appleman1234,謝謝你的回答。 是的,您指出的行號與CPUPROFILE環境變量有關。 但他們檢查該env變量的_absence_,而不是存在。這意味着CpuProfiler已經根據探查器的鏈接在某處進行了實例化。所以鏈接(然後構造函數檢查變量是否存在等)。而且還沒有這樣的地方! 圖書館可以對加載做出反應,但這不是(我在OP的職位上放了一個教授)。 CpuProfile在哪裏(以及如何/爲什麼)只是因爲鏈接而自動實例化的任何想法? –
哦對!這正是這個地方。感謝你的版本,最後它是完全清楚的。非常感謝。 –