1 ----------------------------------------------------------------------- 2 Introduction 3 ----------------------------------------------------------------------- 4 5 J2DBench is a suite of benchmarks with a GUI front end that lets you 6 analyze the performance of many Java2D graphical operations. You can 7 easily modify the test options, and save them for later runs using 8 GUI, or load them in batch mode to allow quick testing on different 9 builds. It also provides logging of the result, to make the 10 comparison of the collected data easier. 11 12 J2DAnalyzer is J2DBench a results analyzer/comparator which can 13 compare the results generated by the J2DBench runs. 14 15 XMLHTMLReporter is an additional tool which can create an html report 16 from the results files generated by the J2DBench runs. 17 18 ----------------------------------------------------------------------- 19 Minimum requirements 20 ----------------------------------------------------------------------- 21 22 The benchmark requires at least jdk1.4 to compile and 23 at least jdk1.2** to run. 24 25 ** Note: the goal is to make the benchmark run on 1.1.x as well. 26 27 ----------------------------------------------------------------------- 28 How To Compile 29 ----------------------------------------------------------------------- 30 31 #> cd J2DBench 32 33 The benchmark can be compiled by using either ant: 34 35 #> ant 36 37 or gnumake (assuming there's 'javac' in the path): 38 39 #> gnumake 40 41 The jar files will be generated into J2DBench/dist directory. 42 43 Note that the workspace also contains Netbeans 4.0 project file: 44 J2DBench/nbproject/project.xml 45 allowing it to be easily imported into Netbeans. 46 47 ----------------------------------------------------------------------- 48 How To Run J2DBench, J2DAnalyzer, XMLHTMLReporter 49 ----------------------------------------------------------------------- 50 51 #> ant run 52 or 53 #> java -jar dist/J2DBench.jar 54 55 To get help page for each of the tools, run: 56 #> java -jar dist/J2DBench.jar -help 57 #> java -jar dist/J2DAnalyzer.jar -help 58 #> java -cp dist/J2DAnalyzer.jar j2dbench.report.XMLHTMLReporter -help 59 60 ----------------------------------------------------------------------- 61 Using J2DBench GUI to Create Options File 62 ----------------------------------------------------------------------- 63 64 There are global options, options specific to a group of benchmarks, 65 and benchmark-specific options. 66 67 Global options affect all groups of benchmarks, group options only 68 affect benchmarks in particular group, and benchmark-specific ones are 69 relevant to a single benchmark. 70 71 Examples of important global options: 72 Calibration: 73 if the "Fixed Number of reps" is set to 0, J2DBench will calibrate 74 each individual benchmark, meaning that it will determine how many 75 repetitions each benchmark can perform in "Target Test Time", and 76 use this number of repetitions for each Test Run. 77 78 If "Fixed Number of reps" is non-0, each benchmark will be run for 79 specified number of repetitions. The use of Calibration mode is 80 preferable because the time per operation can vary widely among 81 the various tests. 82 83 Output Destinations: 84 where the benchmarks will render to. 85 All selected benchmarks will be repeated for each selected 86 destination. 87 88 Example of benchmark group options: 89 TextBenchmarks/TextOptions/Graphics 90 Text AntiAlias: 91 whether to use text antialiasing for text benchmarks 92 93 Example of a benchmark option: 94 Graphics Benchmarks/Imaging Benchmarks: 95 Image Rendering Sources (for Imaging Benchmarks only): 96 the source image types used for testing 97 98 Example of a benchmark: 99 Graphics Benchmarks/Imaging Benchmarks/Image Rendering Tests: 100 drawImage(img, tx, obs): 101 test the Graphics2D's 102 drawImage(Image image, AffineTransform tx, ImageObserver obs) 103 operation. 104 105 General note: you can chose multiple options in some cases by holding 106 Shift or Ctrl key. 107 108 ----------------------------------------------------------------------- 109 Use Scenario 110 ----------------------------------------------------------------------- 111 112 Suppose you want to compare rendering performance of the default 113 and opengl pipelines. 114 115 Start J2DBench (assuming the current dir is J2DBench's top dir) 116 #> java -jar dist/J2DBench.jar 117 118 You can either create and save the option file by selecting desired 119 tests and their attributes, or use one of the provided option files in 120 options/ directory (for example, default.opt, which is used below). 121 122 Note that it's very easy to create an option file which would take an 123 extremely long time to execute the tests, so be be careful when 124 choosing the options and benchmarks to run. 125 126 After the options file is created, start J2DBench in batch mode to run 127 the benchmarks for the default pipeline: 128 #> java -jar dest/J2DBench.jar -batch -loadopts options/default.opt \ 129 -saveres default.res -title "Rendering - Default ppl" \ 130 -desc "Rendering tests with the default pipeline" 131 132 This command will run the benchmarks defined in options/default.opt 133 file and save the result in default.res file. 134 135 (You can also run selected tests directly from the GUI mode by hitting 136 "Run Tests" in the J2DBench dialog) 137 138 Now run the benchmark with opengl pipeline: 139 #> java -Dsun.java2d.opengl=True -jar dest/J2DBench.jar -batch \ 140 -loadopts options/default.opt \ 141 -saveres opengl.res -title "Rendering - OpenGL" \ 142 -desc "Rendering tests with OpenGL pipeline" 143 144 Now let's analyze the results using J2DAnalyzer: 145 #> java -jar dest/J2DAnalyzer.jar default.res opengl.res 146 147 Note that you can compare more than two sets of results, see 148 J2DAnalyzer's help page. 149 150 You can also generate html pages from the results files using 151 j2dbench.report.XMLHTMLReporter class in J2DAnalyzer.jar. Suppose 152 generated pages are to be stored in html_results directory. 153 154 First, make sure html_results/testcases directory exists: 155 #> mkdir -p html_results/testcases 156 157 Then generate the report: 158 #> java -cp J2DAnalyzer.jar j2dbench.report.XMLHTMLReporter \ 159 -r html_results -b default.res -t opengl.res 160 161 The html report will be generated in html_results/ directory. 162 The index page: 163 html_results/Summary_Report.html