| ----------------------------------------------------------------------- | |
| Introduction | |
| ----------------------------------------------------------------------- | |
| J2DBench is a suite of benchmarks with a GUI front end that lets you | |
| analyze the performance of many Java2D graphical operations. You can | |
| easily modify the test options, and save them for later runs using | |
| GUI, or load them in batch mode to allow quick testing on different | |
| builds. It also provides logging of the result, to make the | |
| comparison of the collected data easier. | |
| J2DAnalyzer is J2DBench a results analyzer/comparator which can | |
| compare the results generated by the J2DBench runs. | |
| XMLHTMLReporter is an additional tool which can create an html report | |
| from the results files generated by the J2DBench runs. | |
| ----------------------------------------------------------------------- | |
| Minimum requirements | |
| ----------------------------------------------------------------------- | |
| The benchmark requires at least jdk1.4 to compile and | |
| at least jdk1.2** to run. | |
| ** Note: the goal is to make the benchmark run on 1.1.x as well. | |
| ----------------------------------------------------------------------- | |
| How To Compile | |
| ----------------------------------------------------------------------- | |
| #> cd J2DBench | |
| The benchmark can be compiled by using either ant: | |
| #> ant | |
| or gnumake (assuming there's 'javac' in the path): | |
| #> gnumake | |
| The jar files will be generated into J2DBench/dist directory. | |
| Note that the workspace also contains Netbeans 4.0 project file: | |
| J2DBench/nbproject/project.xml | |
| allowing it to be easily imported into Netbeans. | |
| ----------------------------------------------------------------------- | |
| How To Run J2DBench, J2DAnalyzer, XMLHTMLReporter | |
| ----------------------------------------------------------------------- | |
| #> ant run | |
| or | |
| #> java -jar dist/J2DBench.jar | |
| To get help page for each of the tools, run: | |
| #> java -jar dist/J2DBench.jar -help | |
| #> java -jar dist/J2DAnalyzer.jar -help | |
| #> java -cp dist/J2DAnalyzer.jar j2dbench.report.XMLHTMLReporter -help | |
| ----------------------------------------------------------------------- | |
| Using J2DBench GUI to Create Options File | |
| ----------------------------------------------------------------------- | |
| There are global options, options specific to a group of benchmarks, | |
| and benchmark-specific options. | |
| Global options affect all groups of benchmarks, group options only | |
| affect benchmarks in particular group, and benchmark-specific ones are | |
| relevant to a single benchmark. | |
| Examples of important global options: | |
| Calibration: | |
| if the "Fixed Number of reps" is set to 0, J2DBench will calibrate | |
| each individual benchmark, meaning that it will determine how many | |
| repetitions each benchmark can perform in "Target Test Time", and | |
| use this number of repetitions for each Test Run. | |
| If "Fixed Number of reps" is non-0, each benchmark will be run for | |
| specified number of repetitions. The use of Calibration mode is | |
| preferable because the time per operation can vary widely among | |
| the various tests. | |
| Output Destinations: | |
| where the benchmarks will render to. | |
| All selected benchmarks will be repeated for each selected | |
| destination. | |
| Example of benchmark group options: | |
| TextBenchmarks/TextOptions/Graphics | |
| Text AntiAlias: | |
| whether to use text antialiasing for text benchmarks | |
| Example of a benchmark option: | |
| Graphics Benchmarks/Imaging Benchmarks: | |
| Image Rendering Sources (for Imaging Benchmarks only): | |
| the source image types used for testing | |
| Example of a benchmark: | |
| Graphics Benchmarks/Imaging Benchmarks/Image Rendering Tests: | |
| drawImage(img, tx, obs): | |
| test the Graphics2D's | |
| drawImage(Image image, AffineTransform tx, ImageObserver obs) | |
| operation. | |
| General note: you can chose multiple options in some cases by holding | |
| Shift or Ctrl key. | |
| ----------------------------------------------------------------------- | |
| Use Scenario | |
| ----------------------------------------------------------------------- | |
| Suppose you want to compare rendering performance of the default | |
| and opengl pipelines. | |
| Start J2DBench (assuming the current dir is J2DBench's top dir) | |
| #> java -jar dist/J2DBench.jar | |
| You can either create and save the option file by selecting desired | |
| tests and their attributes, or use one of the provided option files in | |
| options/ directory (for example, default.opt, which is used below). | |
| Note that it's very easy to create an option file which would take an | |
| extremely long time to execute the tests, so be be careful when | |
| choosing the options and benchmarks to run. | |
| After the options file is created, start J2DBench in batch mode to run | |
| the benchmarks for the default pipeline: | |
| #> java -jar dest/J2DBench.jar -batch -loadopts options/default.opt \ | |
| -saveres default.res -title "Rendering - Default ppl" \ | |
| -desc "Rendering tests with the default pipeline" | |
| This command will run the benchmarks defined in options/default.opt | |
| file and save the result in default.res file. | |
| (You can also run selected tests directly from the GUI mode by hitting | |
| "Run Tests" in the J2DBench dialog) | |
| Now run the benchmark with opengl pipeline: | |
| #> java -Dsun.java2d.opengl=True -jar dest/J2DBench.jar -batch \ | |
| -loadopts options/default.opt \ | |
| -saveres opengl.res -title "Rendering - OpenGL" \ | |
| -desc "Rendering tests with OpenGL pipeline" | |
| Now let's analyze the results using J2DAnalyzer: | |
| #> java -jar dest/J2DAnalyzer.jar default.res opengl.res | |
| Note that you can compare more than two sets of results, see | |
| J2DAnalyzer's help page. | |
| You can also generate html pages from the results files using | |
| j2dbench.report.XMLHTMLReporter class in J2DAnalyzer.jar. Suppose | |
| generated pages are to be stored in html_results directory. | |
| First, make sure html_results/testcases directory exists: | |
| #> mkdir -p html_results/testcases | |
| Then generate the report: | |
| #> java -cp J2DAnalyzer.jar j2dbench.report.XMLHTMLReporter \ | |
| -r html_results -b default.res -t opengl.res | |
| The html report will be generated in html_results/ directory. | |
| The index page: | |
| html_results/Summary_Report.html |