【发布时间】:2015-01-21 02:39:53
【问题描述】:
我正在使用 Linux Ubuntu,并使用 C++ 进行编程。我已经能够使用 perf_event 访问性能计数器(指令计数、缓存未命中等)(实际上是使用此链接中的程序:https://github.com/castl/easyperf)。
但是,现在我正在使用 pthreads 运行多线程应用程序,并且需要分别完成每个线程的指令计数和周期。关于如何解决这个问题的任何想法?
谢谢!
【问题讨论】:
-
其他问题中的那些分析器似乎不使用 C++。它们是像 Valgrind 这样的工具,开销很大。
-
您可以尝试更改easyperf中的inherit flag(stackoverflow.com/a/28871708和man perf_event_open)并在线程开始时在每个pthread中启动它。
标签: c++ linux multithreading performance perf