Ответ 1
Ниже приведен алфавитный список всех инструментов, которые я нашел. Описанные аспекты:
- легко ли параметризуется
- это библиотека Java или, по крайней мере, легко интегрируемая в вашу программу Java.
- может ли он обрабатывать микро-бенчмаркинг JVM, например. используйте фазу прогрева
- можно визуально отображать результаты
- может сохраняться измеренные значения постоянно
- может ли он анализировать тренд, чтобы предупредить, что новый коммит вызвал замедление.
- предоставляет и использует статистику (по крайней мере, максимальное, минимальное, среднее и стандартное отклонение).
параметризуемый; Библиотека Perl; нет микро-бенчмаркинга JVM; черчения; упорство; анализ тенденций!?; хорошая статистика (запустите данный тест до тех пор, пока результаты не стабилизируются, выделите выбросы).
не параметрируется; Библиотека Java; Микропроцессорность JVM; нет графика; нет настойчивости; нет анализа тенденций; статистика.
Хорошо ли статистика: помимо среднего, максимального, минимального и стандартного отклонения, он также вычисляет доверительный интервал 95% (через загрузку) и последовательную корреляцию (например, чтобы предупредить о колебательном времени выполнения, которое может возникнуть, если ваша программа ведет себя недетерминированно, например, потому что вы используете HashSets). Он решает, как часто программа должна быть повторена для получения точных измерений и интерпретирует их для отчетов и предупреждений (например, о выбросах и последовательной корреляции).
Также очень хорошо работает микро-бенчмаркинг (см. Создать быстрый/надежный тест с java?).
К сожалению, структура входит в пакет util, который поставляется вместе с множеством других вспомогательных классов. Уровни тестов зависят от JSci (API для Java) и Mersenne Twister (http://www.cs.gmu.edu/~sean/research/). Если автор, Брент Бойер, найдет время, он закипит библиотеку и добавит более простой граф, чтобы пользователь мог визуально проверить измерения, например. для корреляций и выбросов.
параметризуемый; Библиотека Java; Микропроцессорность JVM; черчения; упорство; нет анализа тенденций; статистика.
Относительно новый проект, ориентированный на Android-приложения. Выглядит молодым, но многообещающим. Зависит от Google Guava: (
не параметризуется!?; Библиотека Java; нет микро-бенчмаркинга JVM!?; черчения; настойчивость через сервлет; нет анализа тренда!?; нет статистики!?.
Поддерживает аппаратное обеспечение АОП.
не параметрируется; Библиотека Java; нет микро-бенчмаркинга JVM; построение графика, сохранение и анализ тенденций с помощью дополнительных инструментов (Jarep или JMX); статистика.
Хороший мониторинг, переплетенный с log4j, может также быть запрограммирован или запрошен программным путем, и ваша программа может принимать меры по результатам.
не параметризуется!?; Библиотека Java; нет микро-бенчмаркинга JVM; построение только с Jarep; постоянство только с JMX; нет анализа тенденций; нет статистики!?.
Участник Jamon, поддерживает иерархию мониторов.
не параметрируется; Библиотека Java; Микропроцессорность JVM; черчения; упорство; нет анализа тенденций; нет статистики.
Хороший легкий инструмент для мониторинга, без зависимостей:) Не предоставляет достаточную статистику (без стандартного отклонения), и расширение plugin соответственно выглядит довольно сложно (агрегаторы и агрегаты имеют фиксированные геттеры для минимального, максимального и среднего).
параметризуемый!?; java-библиотека; нет микро-бенчмаркинга JVM!?; черчения; упорство; анализ тенденций!?; статистика!?.
Хорошая библиотека мониторинга, предназначенная для веб-приложений, нагружающих нагрузку.
Java Microbenchmark Harness (jmh
)
parametrizable (пользовательские invokers через Java API); Библиотека Java; Микрообъектив JVM; нет участков; нет настойчивости; нет анализа тенденций; статистика.
Жесткий бенчмаркинг, построенный экспертами Oracle HotSpot, что очень подходит для микрозахвата на HotSpot, используемого в работе OpenJDK. Принимаются чрезвычайные меры для обеспечения надежной среды сравнительного анализа. Помимо удобочитаемого вывода, jmh предоставляет API Java для обработки результатов, например. для сторонних заговорщиков и поставщиков персистентности.
параметризуемый; Библиотека Java; Микропроцессорность JVM; черчения; сохранение (использование CONSOLE, XML или базы данных H2); анализ графического тренда; статистика (макс, мин, среднее, стандартное отклонение, но не легко расширяемое для дальнейшей статистики).
Просто добавьте junit-4-правило в свои тесты junit:)
junit-Benchmarks является открытым исходным кодом под лицензией Apache 2.
Обновить: проект переместился на jmh
В основном для проведения анализа тенденций производительности (с помощью JUnit decor decorator TimedTest
) и масштабируемости (с помощью JUnit decor decorator LoadTest
).
параметризуемый; Библиотека Java; нет микро-бенчмаркинга JVM; нет графика; нет настойчивости; нет статистики.
не параметрируется; Библиотека Java; нет микро-бенчмаркинга JVM; черчения; постоянство через JMX; анализ тенденций через приложение log4j; статистика.
Создает структуру ведения журнала, может использовать АОП.
Очень общая концепция: наблюдатели наблюдают предопределенные условия и определяют, как реагировать, когда они выполняются.
Основное внимание уделяется параметризуемости: проверьте, масштабируется ли ваш алгоритм, т.е. проверяет ли он O (n), O (n log (n)), O (n²)...
java library; Микропроцессорность JVM; нет графика; упорство; анализ тенденций; нет статистики.
параметризуемый; Библиотека Jython; нет микро-бенчмаркинга JVM; черчения; упорство; нет анализа тенденций; нет хорошей статистики, но легко расширяемой.
Зависит от Jython, HTTPClient, JEditSyntax, ApacheXMLBeans, PicoContainer.
параметризуемый!?; Инструментальная платформа Java; нет микро-бенчмаркинга JVM!?; черчения; упорство; анализ графического тренда; нет статистики!?
Платформа тестирования и производительности - это огромная универсальная и расширяемая платформа инструментов (основанная на Eclipse и четырех моделях EMF). Следовательно, он мощный, но довольно сложный, может замедлить Eclipse и расширить его для ваших собственных нужд (например, со статистикой, чтобы они влияли на количество итераций), кажется, очень сложно.
параметризуемый!?; Библиотека Java; нет микро-бенчмаркинга JVM; черчения; упорство; анализ тенденций!?; статистика!?.
Инструмент предназначен для мониторинга в больших кластерах.