JMH, Microbenchmark част от кода

Бих искал да видя дали има начин да кажа на JMH да измерва САМО един конкретен метод в рамките на всички методи, извикани от микробенчмарка.

Бих искал да автоматизирам създаването на микробенчмаркове, използвайки единични тестове като база, така че да не се налага да създавам микробенчмарковете ръчно. В моето изследване имам голяма кодова база, върху която правя някои автоматични модификации, очаквайки те да окажат влияние върху производителността. Досега имам 1200 места в кода, който се променя. Автоматизацията е необходима, тъй като искаме да предоставим рамка, която извършва трансформациите и след това автоматично измерва въздействието на трансформациите.

Тук JMH: не вземайте предвид времето на вътрешния метод предоставено е решение, но ще трябва да отделя ръчно кода в метода @Start и това не изглежда практично да се направи с 1200 тестови случая...


person El Marce    schedule 08.09.2015    source източник
comment
Гледайки кода на JMH, изглежда не е възможно..   -  person El Marce    schedule 10.09.2015


Отговори (1)


Не можете, защото това не е микробенчмаркинг.

Микробенчмаркингът предполага измерване на характеристиките на производителността на (изолиран) кодов сегмент като цяло, като се има предвид точната настройка на средата, включително подготовка на данните и подаването им в избрания метод/система, измерване на показателите от край до край. Това беше предназначено да направи JMH: полезният товар е маркиран с @Benchmark и се измерва неделимо, с възможност за постепенно премахване на работата по настройка и разглобяване.

Измерването на избран метод за полезен товар наред с други изпълняващи се методи за полезен товар би било в най-добрия случай объркващо: без да знаете какво друго се случва в системата, тези индивидуални показатели не ви казват нищо. С други думи, това, което искате, изисква инструменти за профилиране, които са в състояние да анализират въздействието на отделните части върху показателите. Това е нещо, което профилиращите и системите за Application Performance Management са предназначени да правят.

person Aleksey Shipilev    schedule 10.09.2015