Получение времени выполнения (или другой статистики) для программы на C с использованием perf или иным образом
Мне нужно написать программу на C (для школьного задания, чтобы определить размер кэша). я использовал clock()
как средство получения информации о времени. Но сказали, что это может привести к неточным результатам.
Поэтому я подумывал об использовании других библиотек, представленных в недавних лабораториях, perf или papi, для записи производительности. Но мы использовали их через командную строку:
perf stat ./test
Я думаю, возможно ли использовать perf в приложении? Я новичок в C, более привык к языкам более высокого уровня, таким как Python/JS/Java и т. Д. Поэтому я думаю, что мне нужно создать файл make, включить библиотеку и т. Д. Кроме того, какие функции у меня есть?
Я видел http://www.rzg.mpg.de/computing/hardware/BGP/perf.html
libperf.a
perf library for MPI programs.
libperfhpm.a
Use perf instrumentation to call hpmtoolkit.
libperfdummy.a
Provides dummies for the perf instrumentation. You can link against this library to avoid the perf overhead in production runs.
Который я использую? Это не программа MPI. Тогда как я могу использовать это на самом деле? Я использую C и GCC. Это похоже на компиляцию, но... что mpixlf90
mpixlf90_r -o tperf tperf.f -L/usr/local/lib -lperf
1 ответ
Существует множество инструментов анализа производительности (которые предоставляют информацию о времени выполнения и потреблении памяти) для программ на C и C++, некоторые из которых,
Надеюсь, это то, что вы ищете!