Простой кросс-платформенный бенчмаркинг кода - PullRequest
2 голосов
/ 08 июня 2010

Мне известны инструменты в утилитах Xcode для мониторинга и тестирования приложений, но я бы хотел протестировать несколько различных (низкоуровневых) реализаций библиотечных компонентов, предпочтительно через osx / linux / windows. Существует ли какая-либо основа для тестирования кода, похожая на модульные тесты? Мне бы хотелось, чтобы некоторые удобные функции API точно отражали время и использование памяти.

1 Ответ

0 голосов
/ 08 июня 2010

К сожалению, бенчмаркинг (и время, в частности) очень специфичен для платформы.

Однако я думаю, boost::date_time поддерживает наносекундные временные метки как минимум для окон, OS X и Linux, что может быть хорошим началом для начала.

Использование памяти сложно измерить, если задействованы общие библиотеки, но если вы не хотите об этом беспокоиться, самый простой способ отследить использование памяти кросс-платформенным способом - это использовать один из множества отслеживание реализации malloc .

Ни один из этих инструментов не приближается к простоте использования зависимых от платформы инструментов, таких как valgrind (+ KCachgrind) или DTrace, которые также имеют преимущество в том, что они полностью независимы от программы.

...