У меня есть код, который я хочу измерить, пока он работает непрерывно в автоматических регрессионных тестах. Целью этого было бы предупредить меня об изменениях в коде, которые оказали негативное влияние на производительность.
В псевдокоде я хочу что-то вроде этого:
cpuTimer.start
runTest
cpuTimer.stop
diff = cpuTimer.getDuration
if diff > prevDiff // Perhaps to within a tolerance
failTest
Я смотрю на ThreadMXBean # getCurrentThreadCpuTime () для этого, но ключевая проблема заключается в том, что автоматизированные тесты будут выполняться на широком спектре различных компонентов разработчика и автоматически отправляться на тестирование серверов с диапазоном различное оборудование и возможности.
Будет ли это работать, или цифры будут неправильными?
Как решить эту проблему? Есть ли способ лучше? Существует ли стандартный инструмент для этого типа каперсов?