Инструмент профилирования в Linux, показывающий размер параметров, передаваемых вызванным функциям - PullRequest
0 голосов
/ 02 июня 2011

Может ли какой-либо из инструментов профилирования (измерения производительности) в Linux (OProfile, perf events, HTC Toolkit) отображать граф вызовов с размером параметров (размером данных), передаваемым функции / процедуре?

Другими словами, я хотел бы визуализировать поток данных в профилированном приложении (лучше всего вместе с данными профиля, т. Е. Временем, потраченным на функцию / подпрограмму).


Примечание : когда массивы (векторы и матрицы) передаются в подпрограмму / функцию, меня интересует не только размер указателя, но и размер целых данных.

1 Ответ

1 голос
/ 02 июня 2011

Помимо моих скептических замечаний, у меня растет чувство, что вы действительно хотите иметь метрику, которая представляет «пропускную способность памяти», соотнесенную с определенными частями вашего кода.

У меня есть догадка, что вы можете получить пробег из oprofile. oprof_start Gui имеет хороший контрольный список показателей

http://oprofile.sourceforge.net/docs/intel-p6-mobile-events.php

(ПРИМЕЧАНИЕ: они зависят от процессора, см. http://oprofile.sourceforge.net/docs/ или op_help для подробной информации о вашем процессоре)

Это кажется интересным:

DATA_MEM_REFS    all memory references, cachable and non
L2_LD        number of L2 data loads
L2_ST        number of L2 data stores
perhaps some more, but I grew tired of reading things outside my area of expertise here

Я думаю, что perf superseeds (?) Oprofile, и он, безусловно, имеет более простой интерфейс для выполнения (выборки) профилирования графа вызовов, но я думаю, что если вам нужен доступ к фактическим событиям счетчика производительности ЦП, oprofile все еще может быть место, куда можно пойти

...