簡體   English   中英

測量功能時間執行而無需修改代碼

[英]Measure function time execution without modification code

我在庫中找到了一些代碼(函數),可以通過優化編譯器進行改進(作為主要思想-尋找可以深入編譯器的好東西)。 我想通過腳本自動測量此功能的時間執行情況。 由於它是庫中的低級函數並獲取參數,因此很難提取此函數。 因此,我想找到一種無需修改庫/應用程序/環境即可准確地測量此功能(精確的CPU時間)的方法 您有什么想法要實現嗎?

我可以編寫包裝器,但是在不久的將來我需要更多的應用程序來進行性能測試,我認為為每個應用程序編寫包裝器非常難看。

PS:我的代碼將在ARM(armv7el)體系結構上運行,該體系結構具有某種“性能監視器控制”寄存器。 我已經了解了Linux內核中的“ perf”。 但是不知道這是我需要的嗎?

目前尚不清楚您是否有權訪問要分析或改進的功能的源代碼,即是否可以重新編譯所考慮的庫。

如果您在最新的Linux系統上使用的是最新的GCC(至少為4.6),則可以使用諸如gprof (假設您能夠重新編譯庫)之類的探查器或更好的oprofile (無需重新編譯就可以使用),可以根據您的需求定制GCC。

請注意,像任何測量一樣,分析可能會改變觀察到的現象。

如果您出於優化目的考慮自定義GCC編譯器,請考慮為此目的制作GCC插件,或者更好地使用MELT擴展(MELT是擴展GCC的高級領域特定語言)。 您也可以針對自己的特定分析目的自定義GCC(帶有MELT)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM