На прошлой неделе я создал два класса, которые моя команда выразила некоторую обеспокоенность в отношении их производительности. Чтобы оценить мой код, я написал несколько простых тестов JUnit, которые выполняли эти классы, создавая богатые наборы тестовых данных, а затем загружая эти данные с помощью соответствующих методов для тысяч итераций. Я записал время выполнения каждой итерации, а затем выбил высокие, низкие и средние значения с помощью циклов и System.nanoTime()
. Наконец, JUnit утверждал, что высокие и средние времена были в допустимых пределах. Этот подход к тестированию дал моей команде уверенность в этом коде.
Является ли JUnit правильным инструментом для проверки производительности таким образом? Существуют ли более эффективные инструменты для проверки производительности на уровне устройства (метода и класса)?