我正在将一个小型库的使用添加到大型现有软件中,并且希望分析(在查找程序中的详细情况,而不仅仅是在rdtsc()或gettimeofday调用)中的开销和小型库的归属。使用诸如rdtsc()之类的东西我可以感觉到调用我的库函数的延迟,但是我不能做延迟归因,除非我也能够看到分支是否被预测得不好,缓存不能正常工作等等。我研究PAPI是因为我想象在更大的二进制文件的上下文中查看某个硬件事件进入和退出例程,但似乎我需要一个特定的内核模块来让PAPI为我工作(Linux 2.6。 18 & & Intel Xeon 5570)... Vtune专门针对英特尔处理器,但它看起来像是分析整个二进制文件的性能,而不是特定的代码片段(3-4次调用进入我的库)。是否可以在某个二进制代码片段中使用vtune而不是整个二进制文件?
有没有办法让我为我的目标使用Vtune,或者有可能让我访问这些计数器而无需修补我的内核?