堆紋我開發的基於MX51-飛思卡爾板的Linux 2.6.35一個GUI重型C++應用程序。 我想執行堆分析。在ARM
不幸的是,我發現所有的堆分析工具要麼過於侵擾或ARM表面上非工作。具體的工具,我已經試過:
- Valgrind Massif:不可行我的平臺上,由於平臺的微弱CPU。由Massif引入的80%的CPU時間開銷會導致我的應用程序中的一系列問題無法補償。
- gperftools(原谷歌性能工具)tcmalloc:這個相當非侵入性的,基於庫的
libc malloc()
更換我的目標除了爲堆探查工作的所有功能。換句話說,線程緩存分配器可以工作,但分析器不能。我會解釋下面的剖析器的失敗模式,好奇任何人。
任何人都可以推薦一組用於在ARM平臺上執行C++堆分析的替換工具嗎?理想的輸出最終將是一個定向分配圖,類似於gperftools的tcmalloc輸出。低資源利用率是必須的 - 我的平臺資源受到很大限制。 gperftools' tcmalloc的
失效模式解釋說:
我只提供了那些好奇的信息;我不期望得到迴應。我看到類似於gperftools'#407以下的問題,除了ARM而不是x86。 具體來說,我總是會收到消息「Hooked allocator frame not found,returns empty trace。」我花了一些時間調試的問題,看來,當動態鏈接庫tcmalloc,在我的應用程序和動態庫之間的邊界的幀指針是空值堆棧不能走「上面」的號召到動態庫。
gperftools問題#407:hxxp://code.google.com/p/gperftools/issues/detail ID = 407
計算器用戶看到ARM的類似問題:Missing frames on shared libraries on ARM
哇,所以512MB是「高度資源約束」... – 2012-07-17 13:20:08
迴應我的想法來自GBA/DS編程:) – 2012-07-17 16:32:50