本文介绍了如何在Linux上剖析多线程C ++应用程序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我曾经使用来完成我的所有Linux分析。



但是,对于我的多线程应用程序,它的输出看起来不一致。



这个:





但是,很久以前,在我的gprof输出中,我的gprof是使用列表函数因此,我的问题是:



1)在2010年,我可以很容易地使用gprof来配置多线程Linux C ++应用程序? ()
2)我应该查看哪些其他工具进行分析?

解决方案

修改:添加了另一个关于可恶的人的profiler,其中IMHO是更好的多线程应用程序。



查看。这个工具的分析开销是可以忽略的,它支持多线程应用程序---只要你不想配置互斥锁争用(这是分析多线程应用程序的一个非常重要的部分)


I used to do all my Linux profiling with gprof.

However, with my multi-threaded application, it's output appears to be inconsistent.

Now, I dug this up:

http://sam.zoy.org/writings/programming/gprof.html

However, it's from a long time ago and in my gprof output, it appears my gprof is listing functions used by non-main threads.

So, my questions are:

1) In 2010, can I easily use gprof to profile multi-threaded Linux C++ applications? (Ubuntu 9.10)2) What other tools should I look into for profiling?

解决方案

Edit: added another answer on poor man's profiler, which IMHO is better for multithreaded apps.

Have a look at oprofile. The profiling overhead of this tool is negligible and it supports multithreaded applications---as long as you don't want to profile mutex contention (which is a very important part of profiling multithreaded applications)

这篇关于如何在Linux上剖析多线程C ++应用程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-23 10:45