Hey, ich habe vor einigen Wochen eine Library zum Schreiben von Group4 komprimierten TIFF-Bildern geschrieben und wollte diese nun mit zwei anderen Libraries vergleichen (Java Advanced Imaging und Twelve Monkeys).
Also neues Maven Projekt angelegt und die JMH Dependencies eingefügt. Jetzt habe ich drei Benchmark Methoden die jeweils mit einer Library das gleiche Bild speichern sollen.
Ungefähr so:
public void twelveMonkeys(BufferedImage b) {
}
//@Benchmark
public void advancedImaging(BufferedImage b) {
}
//@Benchmark
public void tiffCreator(BufferedImage b) {
}```
Das Dekodieren des Files innerhalb des Benchmarks macht ja eig. keinen Sinn, da je nach Auslastung der Festplatte etc. der FileIO unterschiedlich lange dauert und ich somit nicht wirklich die Dauer des reinen Komprimierens messe.
Deshalb möchte ich eig., dass das Bild vorher einmal dekodiert wird und dann das BufferedImage an alle Methoden übergeben wird, sodass das Dekodieren nicht in die Zeit für den Benchmark fällt.
Ist das möglich sowas mit JMH irgendwie einzustellen?
Optimalerweise sowas wie:
``` File samplePictures = new File("Beispielpfad");
File[] pics = samplePictures.listFiles();
for (File f : pics) {
BufferedImage bufferedImage = ImageIO.read(f);
fuehreBenchmarksMitAktuellemBildAus();
}
Hoffe da kennt sich jemand besser aus als ich
Grüße
#Edit: Das „@Benchmark“ hab ich jetzt als Kommentar eingefügt, weil das sonst immer automatisch umgewandelt wird