Утилиты тестирования производительности для C ++ [Закрыто

StackOverflow https://stackoverflow.com/questions/4606306

  •  25-09-2019
  •  | 
  •  

Вопрос

Мне было любопытно, есть ли у кого-то какие-либо предложения по библиотекам и фабрикам по производительности, которые будут создавать приятные графические диаграммы для C ++ (например, как GCOV производит данные охвата, и там есть фабрики для просмотра данных охвата кода). Возможность производить такие диаграммы, как:

http://download.eclipse.org/eclipse/downloads/drops/s-3.7m4-201012081300/201012081300/performance/performance.php?fp_type=0.

будет довольно сладком. Теперь мы используем CPPunit прямо сейчас для тестирования подразделения, поэтому, возможно, есть что-то, что интегрируется с этим.

Еще одна информация: мы составлены в Linux (мы используем Ubuntu Lucid / Maverick) на машинах Intel x86-64.

Это было полезно?

Решение

Некоторые предложения:

  • То Googletest. C ++ Framework способна создавать совместимые в Junit отчеты.
  • Гудсон Может использоваться для запуска ваших тестов. Требуется только для того, чтобы ваше приложение C ++ можно запускать в качестве приложения консоли.
  • То HUDSON Performance Plugin Может генерировать графические диаграммы от отчетов JUnit.
  • Есть много других плагины.

Другие советы

На Linux вы можете попробовать на VALGRIND Toolkit. Valgrind включает инструмент CallGrind, который может профилировать ваш код. Kcacchegrind очень красиво визуализирует выход Cachegrind.

Некоторые, надеющиеся соответствующие заметы от моего опыта такого рода вещей в ответах здесь а также здесь.

Нет причин, которые ваша существующая настройка CPPUNIT сочетается с чем-то вроде scoped_timer (См. Второй из вышеперечисленного) и немного постобработки к некоторым графикам, возможно, не должны удовлетворять ваши потребности. Пока я верю, что CPPUNIT включает в себя плагин («часовой чайщик»?), Который выйдет из-за неизменного раз, я не думаю, что это на самом деле, что полезно для такого рода тестирования производительности на практике, потому что вы неизбежно заканчиваются, чтобы вовремя было просто частью каждого теста И не все код установки.

Существует два рабочих структуры тестирования производительности могут помочь вам.

Оба они вдохновляются Framework Google Test и предоставляют интерфейс для поддержки тестирования производительности, поэтому легко транспортировать ваш оригинальный Googlet Hayai. или Скандал.

Скандал Сочетает в себе модульные тесты и Perf_evnet. Он расширяет концепцию теста Google и предоставляет интерфейс для доступа PMU. Perf_event дает Скандал Точные значения цикла, которые полезны для инструментов, которые чувствительны к дисперсии времени, такие как компиляторы. Скандал Также также могут профилировать кусок кода от событий PMU (эквалайты: циклы, инструкции, ссылку кэша, пропустить кэш-память и т. Д.).

Hayai. Поддерживает несколько методов измерения производительности разных ОС (Windows: QueryPerformanceCounter(), Linux: gethrtime(), Apple (OSX, IOS): mach_absolute_time()) в свою структуру тестирования производительности.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top