是否可以在不查看主程序的情况下仅分析共享库? 例如,我开发了一个插件,我想简介但不需要描述整个应用程序。我只是想看看我的插件的瓶颈。 (当然,我想在主应用程序运行并加载我的插件时对其进行分析...)
我正在研究linux,我习惯于召唤,但出于好奇心,我也对所有系统的可能性感兴趣,所以我让问题一般。
我对此感兴趣,因为主程序很慢,并且不想添加分析的开销,因为我对主程序性能不感兴趣...
答案 0 :(得分:1)
在Linux中perf
statistical分析工具的开销非常低(1-2%),因此您可以使用perf record ./your_application
对整个应用程序进行分析,然后分析生成的个人资料perf.data
与perf report
command。您可以将perf报告输出过滤到某些共享库或搜索插件的函数名称。阅读更多http://www.brendangregg.com/perf.html
Callgrind不仅仅是一个分析器,它是用于实现精确profiler with instrumentation approach的二进制重新编译器,它对任何代码都有10-20倍的开销,即使未启用分析工具也是如此。
答案 1 :(得分:0)
你的插件只在某些时间运行,对吧?就像用户请求某些活动一样?人们在任何IDE中使用this method,在此期间手动暂停。暂停将根据其使用的时间落在插件中。在您暂停之前没有性能影响,因为应用程序全速运行,而在暂停时,它会停止,您不在乎,因为您正在诊断您的插件。