1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

RFC: More Interactive Graphs For Benchmarks

Phoronix

Published on 08 January 2012 07:10 AM EST
Written by Michael Larabel in Phoronix
3 Comments

Here's some work that's landed to ultimately provide a more interactive experiencing when viewing benchmark results, but your feedback is requested.

First, the technical details: Within the Phoronix Test Suite Git code-base now for the forthcoming 3.8-Bygland release is a new pts_Graph with the internal design being completely re-engineered. Up to this point, pts_Graph (the graphing library written for the Phoronix Test Suite that generates the line graphs, bar graphs, box plots, scatter plots, etc of test results) has used bilde_renderer to handle all of the drawing.

The bilde_renderer is a multi-format drawing API I wrote for the purpose of being able to seamlessly target SVG, PNG, JPEG, Adobe Flash/SWF, and PDF formats with these pts_Graph graphs. The bilde_renderer design has worked well for several years with having a uniform API and then different back-ends for each of the image formats. The need for supporting different formats has come down to using SVG on modern web-browsers since the resulting files are very small and display well, needing to support JPEG for merging graphs into certain PDF files and other document formats, and dumping PNG graphs for un-supported web browsers.

Now with most browsers in 2012, SVG (Scalable Vector Graphics) is working well across all major browsers with even the latest Microsoft Internet Explorer finally playing natively with SVG. There's only a few modern exceptions like a few SVG bugs with Konqueror's KHTML and the latest Opera browser still not handling a few SVG text alignment attributes correctly. So for most cases, SVG graphs from the Phoronix Test Suite are great and delivering the best image quality, file size, and also the greatest flexibility in supporting interactions with the user, etc. However, support for PNG/JPEG graphs is still needed for the problematic web-browsers and for embedding graphs into other document types.

The problem with the status quo of bilde_renderer is that this universal API still needs to be extended each time of adding new features, which these days come down to mostly adding more interactivity and other features. Most of the recent API additions have then only been implemented in the SVG back-end of bilde_renderer, so this just becomes a burden.

However, to allow for more quickly introducing new features to the SVG graphs, pts_Graph has been re-worked. In the new graphing code for Phoronix Test Suite 3.8 and later, pts_Graph internally is now manipulating an SVG DOM directly. This way new SVG features can be added quickly and easily to pts_Graph, such as mouse-over effects, more linking between results, drilling down on more test result details, etc. This means most of the time bilde_renderer is bypassed completely. which will result in slightly faster performance (time to generate graphs) for OpenBenchmarking.org and other cases where dozens or hundreds of dynamic graph requests can happen per second.

For cases where a JPEG/PNG version of the graph is needed, new Phoronix Test Suite code allows using the SVG DOM as an IR that is then fed to a bilde_renderer back-end accordingly and the unsupported portions being ignored. Effectively this makes it a lightweight SVG to PNG/JPEG translator. Compared to other open-source SVG to PNG conversion methods, this custom implementation provides 1:1 accuracy for the important drawing calls that the Phoronix Test Suite cares about for providing a static graph while the size of this translator is less than 10KB of code.

There's also some other pts_Graph changes that are being worked on too for allowing some nifty features coming soon.

To sum it up, the Phoronix Test Suite graphs can now be made much richer and highly interactive in a cleaner and easier manner. The SVG graphs are what most people deal with and then the static JPEG/PNG support remains. With Phoronix Test Suite 4.0 later in the year is my target for having many new end-user features added to the graphs rendered by the Phoronix Test Suite and OpenBenchmarking.org. (Ideally by the 4.0 release my last gripes with the SVG support in the remaining Linux browsers will also be addressed.) But prior to that, I would like to hear some feedback in terms of what visual features you would like added to the result graphs or examples of other graphs you enjoy viewing right now on the web. Please share this feedback within the forums. Thanks, and other feature requests for the Phoronix Test Suite are also welcome.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux Hardware Reviews
  1. MSI X99S SLI PLUS On Linux
  2. NVIDIA GeForce GTX 970 Offers Great Linux Performance
  3. CompuLab Intense-PC2: An Excellent, Fanless, Mini PC Powered By Intel's i7 Haswell
  4. From The Atom 330 To Haswell ULT: Intel Linux Performance Benchmarks
Latest Linux Articles
  1. RunAbove: A POWER8 Compute Cloud With Offerings Up To 176 Threads
  2. 6-Way Ubuntu 14.10 Linux Desktop Benchmarks
  3. Ubuntu 14.10 XMir System Compositor Benchmarks
  4. Btrfs RAID HDD Testing On Ubuntu Linux 14.10
Latest Linux News
  1. Fedora 21 Beta & Final Release Slip Further
  2. Mesa 10.3.2 Has A Couple Bug-Fixes
  3. RadeonSI/R600g HyperZ Support Gets Turned Back On
  4. openSUSE Factory & Tumbleweed Are Merging
  5. More Fedora Delays: Fedora 21 Beta Slips
  6. Mono Brings C# To The Unreal Engine 4
  7. Coreboot Now Has Support For Intel Broadwell Hardware
  8. Enlightenment's EFL 1.12 Alpha Has Evas GL-DRM Engine, OpenGL ES 1.1 Support
  9. GTK+ Lands Experimental Backend For Mir Display Server
  10. Ubuntu 14.10 Officially Released
Latest Forum Discussions
  1. HOPE: The Ease Of Python With The Speed Of C++
  2. Updated and Optimized Ubuntu Free Graphics Drivers
  3. Ubuntu 16.04 Might Be The Distribution's Last 32-Bit Release
  4. Linux hacker compares Solaris kernel code:
  5. Advertisements On Phoronix
  6. Users/Developers Threatening Fork Of Debian GNU/Linux
  7. AMD Releases UVD Video Decode Support For R600 GPUs
  8. Proof that strlcpy is un-needed