callgrind

    0熱度

    2回答

    我想獲得一個C++程序調用函數的時間日誌,最好在文本文件中使用valgrind。 對於下面的例子中的C++程序(simple.cpp): void baz(){ } void bar(){ for(int i = 0; i < 3; i++) baz(); } void foo(){ bar(); } int main(){ foo();

    1熱度

    2回答

    全部 我一直在試圖讓信號處理/調試模式下運行的Apache,以便使用callgrind,並有一個簡單的單一進程與調試工作。 有沒有人有經驗在單進程模式下運行Apache? 我試過運行httpd -X。這可以通過一個單獨的進程來啓動apache,(好的),但是沒有找到一種乾淨的方式來關閉它們,像這樣運行。唯一可行的方法是kill -9。這也吹掉了任何調試輸出,所以在使用callgrind時不會讓我有

    3熱度

    1回答

    我想了解Callgrind配置文件格式。我發現online description 我以爲我的理解是相當好,直到我遇到了「擴展例」: events: Instructions fl=file1.c fn=main 16 20 cfn=func1 calls=1 50 16 400 cfl=file2.c cfn=func2 calls=3 20 16 400 fn=fun

    14熱度

    2回答

    我試圖通過去除我不關心的噪聲和計算來剖析(使用Callgrind)我的代碼的特定部分。 這裏是我想要做的一個例子: for (int i=0; i<maxSample; ++i) { //Prepare data to be processed... //Method to be profiled with these data //Post operation on

    1熱度

    2回答

    我想實現一些額外的功能LibreOffice打印過程(一些特殊的信息應該自動添加到每個打印頁面的邊緣)。我使用的是RHEL 6.4和LibreOffice 4.0.4和Gnome 2.28。 我的目的是研究LibreOffice和系統組件之間的數據流,並確定哪些源代碼負責打印。之後,我將不得不修改這些代碼部分。 現在我需要關於源代碼研究方法的建議。我發現了大量的工具,從我的角度來看: strace

    5熱度

    3回答

    我正在分析我的代碼,並且我已經找到它中最昂貴的部分。然而它發生在一個內聯函數中。爲了衡量我強制該功能未被內聯的影響。 現在我想報告準確的性能分析數據。如果沒有內聯,我們會產生大量開銷(函數基本上是一個單一的循環,但它經常被稱爲)。 我不知道是否有可能指示valgrind處理代碼的特定部分,因爲它本身是一個函數(如makros CALLGRIND_START_INSTRUMENTATION,CALL

    0熱度

    1回答

    現在我正在使用valgrind/callgrind來測量和比較不同的算法實現。假設有兩種實現一種算法,並且處理鏈如下: void main() { //Procedure 1 fun1(); //Procedure 2 fun2(); //Procedure 3 Algorithm_imp_1(); //Algorithm_imp_2(

    3熱度

    1回答

    我正在尋找具有性能分析功能的C/C++庫,如gprof或callgrind。 更準確地說,我希望它的輸出等同於callgrind將發佈的內容,以便將它傳遞給第三方工具,如KCacheGrind。 這個想法是能夠基於這個庫設計一個方面,並將其插入到我們團隊正在開發的幾個應用程序中。

    1熱度

    1回答

    是否有可能通過Callgrind的分析輸出獲取跟蹤信息? 如果是這樣,你能解釋這是怎麼完成的? [更新]它可能是我的術語。當使用Kcachegrind查看Callgrind分析結果時,什麼是回調/ callstack調用以及它駐留在哪裏?

    2熱度

    1回答

    的推遲開始使用 valgrind --tool=callgrind 在Linux上 .....我想套用消息傳進我的過程。然而,對於第一個例如90%的消息,我想正常處理,不進行研磨,以便建立一張地圖。然後,我想僅爲最後10%的消息激活valgrind/callgrind。 這可能嗎? 也許有一種方法可以在我的C++代碼中增加一個計數器,當它達到某個閾值時,激活valgrind/callgrind。