Swingbench 2.8

I’m pleased to announce the release of Swingbench 2.8. It includes

  • A new html front end to run and review benchmark runs
  • New tool to render results with the ability to compare runs
  • Fixes to TPC-C
  • Fixes and new drivers.

Clearly the standout feature of this release is the the new HTML frontend allowing you to run swingbench on or close to the server. Similar to a web application. There will be plenty of improvements to the the web front end in the comming months. Lets quickly go through some of these changes

Web Front End

You can launch the web front end by using the command

./sbweb

By default it will run off port 8080 but you have the option to change it at launch by simply specifying the port number. See the help defintion below.

./sbweb --help
Usage: WebServer [port] [--config <file>] [--debug]
  port               Port to listen on (default 8080)
  --config, -c FILE  Preload this configuration XML into memory for editing/starting
  --debug            Enable verbose (FINE) logging to stdout

Open a browser and visit http://localhost:8080 to access the web front end. You should see the following

Web Front End Screenshot

Before running a workload, you must first select a config file from the “Workload” drop down. This will load a memory resident version of the file. This can be modified in the UI or by clicking on the “Edit Config” button. It’s worth noting that any changes made to this file will not be saved to disk.

On pressing the “Start Benchmark” button, the user’s threads will start running against the target database. When the user presses the stop button or the timers expire, the user session threads will stop running transactions. A short time after this, a window will appear showing the results which have also been stored in the database. You can preview previous runs by clicking on the “Past benchmark runs”. This is retrieve a list of previous runs. By clicking on anyone of these runs, you will bring up a report showing some of the runs’ key metrics.

Formatting Result Files

Whilst XML is simple to parse by a computer it is not necessarily ideal for humans. In the bin/winbin directory you’ll find three utilities that will convert XML files or the JSON held in the database into text, pdfs or csv files. These utilities are called results2pdf, results2txt and compareresults2pdf.

  • results2pdf - Takes a single results file and converts it into a pdf version. With the results being presented in tables and graphs. At some stage this will be deprecated.
  • results2txt - Takes a single or multiple results file or ids from results stored in the database and converts them into a series of text tables. If multiple results are given (file or database) they are compared with one another
  • compareresults2pdf - Takes a single or multiple results file or ids from results stored in the database and converts them into series of tables and graphs. If multiple results are given (file or database) they are compared with one another To list previous workloads held in the database use a command similar to
./compareresults2pdf -u soe -p soe -cs //localhost/soe --list

== Available Runs ==
+----+---------------------+--------------------------------------+
| ID | Recording Time      | Recording Name                       |
+----+---------------------+--------------------------------------+
| 41 | 2025-11-07 09:28:00 | "Order Entry (PLSQL) V2" - Charbench |
| 22 | 2025-11-06 15:50:54 | "Order Entry (PLSQL) V2" - Charbench |
| 21 | 2025-11-06 15:50:20 | "Order Entry (PLSQL) V2" - Charbench |
| 1  | 2025-11-06 15:45:35 | "Order Entry (PLSQL) V2" - Web UI    |
+----+---------------------+--------------------------------------+

To compare previous runs run a command similar to

./compareresults2pdf -u soe -p soe -cs //localhost/soe --ids 21,22,41
PDF written to: /Users/dgiles/java/swingbench/swingbench/bin/results_comparison.pdf

Or if you want to generate a pdf report of comparison of results files run a command like

./compareresults2pdf -f results27102024.xml,results27102025.xml,results27102026.xml
PDF written to: /Users/dgiles/java/swingbench/swingbench/bin/results_comparison.pdf

To generate text output you can run a similar command to

./results2txt -f results27102024.xml,results27102025.xml,results27102026.xml

== Overview ==
+----------------+--------------------------+--------------------------+--------------------------+
| Metric         | results27102026.xml (-)  | results27102025.xml (-)  | results27102024.xml (-)  |
+----------------+--------------------------+--------------------------+--------------------------+
| Recording Name | "Order Entry (PLSQL) V2" | "Order Entry (PLSQL) V2" | "Order Entry (PLSQL) V2" |
| Avg TPS        | 1904.5                   | 1920.6                   | 1604.8                   |
| Total Txns     | 38089                    | 38411                    | 32095                    |
| Failed Txns    | 0                        | 0                        | 0                        |
| Run Time       | 0:00:20                  | 0:00:20                  | 0:00:20                  |
| Users          | 120                      | 160                      | 160                      |
| Time Of Run    | 31 Oct 2025, 15:27:29    | 31 Oct 2025, 15:26:45    | 31 Oct 2025, 15:24:56    |
+----------------+--------------------------+--------------------------+--------------------------+

== DML Totals ==
+--------------------+---------------------+---------------------+---------------------+
| DML Metric         | results27102026.xml | results27102025.xml | results27102024.xml |
+--------------------+---------------------+---------------------+---------------------+
| SelectStatements   | 157702              | 158989              | 133047              |

Download

As always you can download the most recent version of the code here

I’ve also added a video that discusses some of these changes. You can view it on my YouTube channel here.

2025

Swingbench 2.8

4 minute read

I’m pleased to announce the release of Swingbench 2.8. It includes A new html front end to run and review benchmark runs New tool to render results with...

results2text: Benchmark Comparisons

2 minute read

I’ve added a new tool (added in September 2025) to enable you to compare benchmark results that are generated and stored in the database (see here). The tool...

Benchmarks results stored to the database

2 minute read

I’ve just added some functionality to Swingbench that I probably should have added a long time ago. Now, every time you run a benchmark using Charbench, Swin...

Back to Top ↑

2024

Back to Top ↑

2023

New functionality for swingbench…

4 minute read

A small but significant set of changes Last weekend I updated swingbench to add a few features that I’ve had frequent requests for. One is the addition of da...

Swingbench 2.7 June 2023 Update

less than 1 minute read

A new build of Swingbench with a whole bunch of small changes mainly related to the benchmarks. Faster build time for the JSON benchmark when creating lar...

Size Makes A Difference

6 minute read

In my previous post “Going Big” I discussed the difference testing a data set of a representative size can make to the usefulness of a benchmark. Running a w...

Going Big

9 minute read

Swingbench makes it simple to generate a dataset that you can simulate transactions against. However one of the problems I commonly see is that the users of ...

Back to Top ↑

2022

Swingbench 2.7

1 minute read

Swingbench 2.7 So I finally found some time to get a new build of swingbench done. The big change is that swingbench now only supports JDK-17 and above. Now,...

A new build of DB Time Monitor

less than 1 minute read

Following quickly on the heels of the update to MonitorDB I’m releasing a new build of DBTimeMonitor. This is a simple update using the latest Oracle jdbc dr...

A new build of MonitorDB

less than 1 minute read

I’ve just updated MonitorDB. It’s never going to replace Grafana but if you need a quick solution to monitor a few values inside of the Oracle Database and y...

Making Colour work on the Command Line for Windows

less than 1 minute read

I’ll make a confession. I don’t own a Microsoft Windows Machine. I never have and probably never will. This means that I generally never get the oppertunity ...

A New Release of Swingbench

2 minute read

A New Release of Swingbench… Along with a new website, I’m rolling out a new build of Swingbench. This release is a little embarrassing for me, as it include...

A New Look

2 minute read

A New Start… Quite a lot has changed since I last posted on this website. I had just left Oracle to join Google… A year and a half later I returned to Oracle...

Back to Top ↑