Это вовсе не означает, что вы не должны добавлять в свой продукт новые возможности или новый код; разумеется, совершенствование программ приносит пользу. Но вы должны знать о тех компромиссах, на которые вам придется пойти, и упрощать свой код там, где это возможно.
Фоновые процессы на машине влияют на приложение, сеть может быть в большей или меньшей степени загружена при запуске программы, и т.д.
Также существуют более сложные средства генерирования нагрузки: Apache JMeter, Gatling, MicroFocus LoadRunner и многие другие.
• Другие тесты могут измерять пропускную способность или время отклика в зависимости от того, поступает ли нагрузка в фиксированном темпе (то есть на основании эмулированного времени обработки в клиенте).
Хорошие микробенчмарки трудно написать без соответствующего фреймворка.
• Только тестирование всего приложения позволит узнать, как будет работать код в реальных условиях.
• Изоляция производительности на уровне модулей или операций с применением мезобенчмарков является разумным методом, но не заменяет тестирования всего приложения.
Хорошие микробенчмарки трудно написать без соответствующего фреймворка.
• Только тестирование всего приложения позволит узнать, как будет работать код в реальных условиях.
• Изоляция производительности на уровне модулей или операций с применением мезобенчмарков является разумным методом, но не заменяет тестирования всего приложения.
Для микробенчмарков необходим период разогрева; в остальных случаях микробенчмарк измеряет производительность компиляции вместо производительности кода, которую он пытается измерить.
Логические флаги используют следующий синтаксис: -XX:+ИмяФлага устанавливает флаг, а -XX:-ИмяФлага сбрасывает его.
Хотя между языком Java и Java API существуют важные различия, в данном контексте они будут рассматриваться на одном уровне.
Цель оптимизации кода — повышение уровня использования процессора (на короткий период времени).