Wednesday, May 17, 2023

Plotting against time

This is a short story about how quickly charts can be created between the handful of plotting engines that I've experimented with.


Over the years I've used a few different plotting engines for visualizing system characteristics for various performance work efforts.  The first requirement is to use tools that can be scripted as part of the work, then deciding between how the charts look and how long it took to generate the charts.


Here is an example of an automatically generated report from an OLTP test called DBT-2, where charts are generated from system statistics and from the benchmark itself: https://osdldbt.github.io/dbt-reports/dbt2/3-tier/report.html


What I want to illustrate with the above example is that there are 10 charts on the landing page with links that expand into potentially hundreds of additional charts.


The three engines that I timed are gnuplot with cairo png, R with bitmap, and Julia with VegaLite.  Let me show how quickly they perform.

 

 

 

R was generating plots 14 times slower than gnuplot and Julia with VegaLite was generating plots 53 times slower.  After 100 charts, that turns into 5 minutes, over an hour, and more than 4 hours respectively.


My plotting needs are pretty basic, but here are some additional links to see examples of the charts that can be produced by gnuplot, R and VegaLite.  Note that Julia is capable of using a number of different engines in addition to VegaLite, just like R, and that I'm just keeping the list of examples brief.

 


What's your favorite plotting engine?