Performance Analysis of the WebLogic Real Time 1.0 "Trader" Application
Pages: 1, 2, 3

Detailed Benchmark Charts

The charts in this section illustrate a number of "Trader" benchmarks that were run under different time periods and with various GC and thread configurations.

Twenty-minute scaling runs

The following histograms show the total number of Trader operations for various latencies using JRockit DetGC, first with eight threads and then with sixty-four threads.

Figure 4
Figure 4: Twenty-Minute Benchmark showing various latencies using JRockit DetGC with 8 threads (click the image for a full-size screen shot)

Figure 5
Figure 5: Twenty-Minute Benchmark showing various latencies using JRockit DetGC with 64 threads (click the image for a full-size screen shot)

The following charts correspond to the previous JRockit DetGC histograms. The first chart summarizes Trader performance for JRockit DetGC with eight threads, while the second does the same but with sixty-four threads. The top black line in each chart shows throughput according to the right-hand scale (the higher the better). The bottom red and blue lines in each chart show application response times according to the left-hand scale (the lower the better).

Figure 6
Figure 6: Twenty-Minute Benchmark showing performance using JRockit DetGC with 8 threads (click the image for a full-size screen shot)

Figure 7
Figure 7: Twenty-Minute Benchmark showing performance using JRockit DetGC with 64 threads (click the image for a full-size screen shot)

Two-hour benchmark runs

The following style charts demonstrate the difference between the WLRT JRockit JVM and the Sun JVM over a two-hour period. Once again, the top black line in each chart shows throughput according to the right-hand scale, while the bottom red and blue lines in each chart show application response times according to the left-hand scale.

Figure x
Figure 8: Two-Hour Benchmark showing performance using JRockit without DetGC and 8 threads (click the image for a full-size screen shot)

Figure 9
Figure 9: Two-Hour Benchmark showing performance using Sun IncGC and 8 threads (click the image for a full-size screen shot)

Figure 10
Figure 10: Two-Hour Benchmark showing performance using JRockit DetGC and 8 threads (click the image for a full-size screen shot)

The following three histograms show the total number of Trader operations for various latencies using JRockit DetGC, Sun IncGC, and JRockit without DetGC, all with eight threads.

Figure 11
Figure 11: Two-Hour Benchmark showing various latencies using JRockit without DetGC and 8 threads (click the image for a full-size screen shot)

Figure x
Figure 12: Two-Hour Benchmark showing various latencies using Sun IncGC and 8 threads (click the image for a full-size screen shot)

Figure 13
Figure 13: Two-Hour Benchmark showing various latencies using JRockit DetGC and 8 threads (click the image for a full-size screen shot)

Pause comparisons with and without Deterministic GC

The following two charts show JRockit GC pauses as reported by its verbose GC output.

Figure x
Figure 14: Benchmark without JRockit DetGC, showing GC pauses as great as 275 milliseconds (click the image for a full-size screen shot)

Figure 15
Figure 15: Benchmark with JRockit DetGC on both the client and server, showing maximum GC pause times of 30 milliseconds (click the image for a full-size screen shot)

Conclusion

The results of this benchmark show that the WLRT 1.0 JRockit JVM with DetGC performed better than the Sun JVM with IncGC and the default JRockit JVM without DetGC in both throughput and latency. In fact, WLRT with JRockit DetGC was able to greatly reduce latency while maintaining a high level of throughput.

In addition, without DetGC, JRockit reported GC pauses as great as 275 milliseconds, but with DetGC, JRockit reported far lower maximum GC pause times of approximately 30 milliseconds.

References

Tom Barnes is a senior software engineer on BEA's WebLogic Performance Team and is the author of the "BEA WebLogic JMS Performance Guide" white paper on Dev2Dev.