Я написал простой тестовый код на C ++ в качестве моей первой попытки с Time Profiler на моем Mac:
#include <iostream> // std::cout
int frank() { return 0; }
int main () {
int a = frank();
std::cout << a << std::endl;
return 0;
}
Затем я скомпилировал это:
g++ test.cpp -o test0
И я использую Time Profile для профилирования моего исполняемого файла test0
:
Я думал, что смогу найти свою функцию frank()
в Call Tree
, но я не сделал.
Другой вопрос, как передать аргументы в исполняемый файл в Time Profiler.
Instruments — это профилировщик выборки, для которого частота выборки слишком мала, чтобы обнаружить ваш вызов frank (). Либо выполните некоторые дорогостоящие вычисления внутри функции, либо просто вызовите ее достаточное количество раз.
Настройте ваш код следующим образом (C ++ 11), где внутри цикла вызывается чуть более сложная функция:
#include <iostream> // std::cout
long frank(const unsigned int n) { return n*n; }
int main () {
const auto nr_iterations = 1000000u;
long a;
for (auto n = 0u; n < nr_iterations; ++n)
{
a = frank(n);
}
std::cout << a << std::endl;
return 0;
}
Результаты в следующем инструменте на моей машине:
Чтобы передать аргументы через инструменты, нажмите на имя цели прямо рядом с кнопкой записи. В появившемся контекстном меню нажмите «Изменить цель», где «цель» — это имя вашего исполняемого файла. Например:
Появится диалоговое окно, где вы можете ввести аргументы.
Других решений пока нет …