gperftools

    1熱度

    1回答

    我有一些gperf tool文件: 第一個正在運行約2 minites,文件是18M; 別人運行約2小時,文件是關於800M ,當我嘗試使用:pprof --text拿到報告,發現的第一個具有樣本,但只運行這些2小時5500樣品。 我除了較大的文件有大約2*3600*100 samples(因爲「默認情況下gperf工具每秒取100個樣本」)。 同樣的程序和相同的操作環境下,爲什麼樣品太少? 對不

    1熱度

    2回答

    我發現這個主題有幾個衝突的答案。 This博客文章需要libuwind,但這不適用於Mac OS X.我在我的代碼中包含#include <google/profiler.h>,但是我的編譯器(g ++)找不到該庫。我通過自制軟件安裝了gperftools。另外,我發現this計算器問題出這一點: 然後我跑到pprof生成輸出: [hidden ~]$ pprof --text ./a.out c

    0熱度

    1回答

    我目前正在使用Ubuntu上的SDL在C++中編寫遊戲。我最近多線程化了我的引擎,所以我從用valgrind/callgrind進行分析轉換爲gperftools。我已經得到它的工作,但它不會打印我自己的函數名稱。奇怪的是,它識別SDL函數名稱(我在一些線程上看到了相反的情況;共享庫函數沒有找到它們的名字)。 kcachegrind Output 我跑我的程序,而且爲了得到執行以下兩條命令是: p

    1熱度

    1回答

    我使用gperftools來剖析C++應用程序,該應用程序使用GCC 5.4.0(使用-O3)進行編譯。 代碼是高度優化的,所以我沒有看到很多分支的輸出,但有一個叫__nss_passwd_lookup()分支,這需要時間顯著量: 我唯一的猜測是它與內存分配有關。 操作系統:Ubuntu 16.04 x86_64,內核:4.8。

    2熱度

    2回答

    當我衡量我的圍棋程序中使用Linux的time實用程序運行時,我得到下面的輸出: real 1m9.177s user 7m1.788s sys 0m39.016s 當我看到完全相同的程序執行的輸出在圍棋的pprof CPU分析器,我得到下面的輸出: Entering interactive mode (type "help" for commands) (pprof) top 14

    0熱度

    1回答

    我一直在我的電腦上成功地使用谷歌perf工具。但是,我正在爲aarch64體系結構進行編譯和部署,並且我爲x86獲得的分析結果可能與aarch64不匹配。 我想直接測量aarch64設備上的東西。我編譯了RelWithDebInfo標誌,我用Profiler LD_PRELOAD的運行時鏈接運行了我的代碼。 對於我的第一次嘗試,主要是我有地址,而不是函數名稱: 828 2.1% 86.0% 82

    1熱度

    1回答

    我試圖用gperftools分析多線程工作負載,但是難以解釋產生的輸出。我寫了一個簡單的程序,啓動兩個工作負載相同的線程,並使用gperftools cpu profiler進行配置。在輸出中,我可以看到每個線程的兩個函數,但是每個線程的開銷在一次運行和下一次運行之間會有很大的不同。我希望這兩個函數都顯示相同的結果,因爲它們是相同的工作負載,但實際上,其中一個可能是90%,另一個是10%,有時是8

    0熱度

    1回答

    我已經安裝了gperftools並收集數據,目前看起來是合理的。我看到一個節點(?)被抽樣了很多 - 但我對那個節點的調用者感興趣 - 我沒有看到它們?我也試過callgrind/kcachegrind,我覺得我錯過了什麼?使用--text Total: 1844 samples 573 31.1% 31.1% 573 31.1% US_strcpy 185 10.0% 41

    0熱度

    2回答

    我用Rcpp做了一個R包,其中整個模擬在C++中運行,結果在R中分析。現在我需要剖析我的函數,以便優化它們,但是R剖析器可以不能區分C++函數內部會發生什麼,而且我不知道如何運行C++分析器,因爲函數只能從R裏面運行。 到目前爲止,我發現了一些關於使用gperftools的建議(questions和tutorials),但指南是不完整的(可能他們假設我缺乏的知識水平?),缺少鏈接,並且我不斷碰壁。

    0熱度

    1回答

    我正嘗試在unix平臺上對C++應用程序進行堆分析。我嘗試了valgrind的地塊,但它使應用程序非常緩慢並影響應用程序的行爲。 我正在尋找其他選項,並遇到gperftools和heaptrack。雖然這些可以成爲我的問題的可行解決方案。但我有限制,我沒有足夠的權限來安裝這些工具。 有沒有什麼辦法可以設置gperftools或heaptrack而無需在unix中安裝它們? 在此先感謝