Skip to main content

Performance Visualization - What the heck?

Yeah, exactly what I asked the first time I started thinking about it. But then I met my buddy Neil at CMG (Computer Measurement Group) in Reno (brrr, was it cold there) and we started talking about hot topics and performance visualization came up. Actually, I don't recall if this happened before or after we had a few beers. This is not that important because most really good ideas came after a few beers.

So, back to the topic at hand. Visualization is not a new concept. It has been used in several fields. Here is a list of web site with various applications of visualization:


Here is a technical article on visualization as it applies to computer and network performance.


Now the big complaint from my good friend Neil is that people in the performance field are content with the usual visualization techniques such as boring bar charts, plots and pie charts simply because they are not aware that other "better" (I will come back later with what better means) visualization techniques are possible. Performance tool vendors are not interested in funding R&D for new performance visualization techniques for the same reason and also quite simply because no one is asking for it.

The purpose of this entry is to talk about the problem with the intent of gathering interest in this very interesting problem which is truly not a simple one to solve.

The problem with visualization is that one needs to come up with a way to represent a digital abstraction (performance data) in a way which is natural or easy for the human computer (the brain) to interpret. Now, put this simply this sounds like a rather simple proposition. However, it is actually extremely difficult to solve. In this discussion, if a given visualization technique is easy for the human brain to interpret it is said to have a good impedance match. The reverse condition is said to have a poor impedance match.

The reason this problem is not an easy one to solve is because the scientific rules for defining what is a good impedance match have not been well defined or studied. Several techniques have been tagged as having a good impedance match but rather on subjective terms using words like "cool", "neat" and even the odd "wow". This does little though for providing a methodology for coming up with visualization techniques of performance data that have a scientifically derived good impedance match.

The other problem with visualization in general is that quite often a good visualization is one within a three dimensional universe. This is probably the case because the human brain is accustomed to operate in such an environment. However, representing a 3D visualization in a 2D computer screen is a difficult, costly and challenging approach. This problem has become much more accessible to the masses with the advent of super computers like dual-core CPUs, hyper threading cores, etc and the great advancements in video card technology in the last 5 years.

The problem domain where visualization has gather momentum is in the field of marketing. This is because a great deal of visualization customization (as opposed to generalization for performance data) is possible from a cost point of view because of the nature of the problem. 1 particular visualization is applicable to 1 and only 1 product or service.

In my next entry, I will try to expand on examples in some or all of the fields discussed so far. As always, your comments are welcomed.

Comments

Popular posts from this blog

Handling multipart form data in Spring 3.1

Introduction Multipart mime encoded is a format used to transmit binary and arbitrary data in 1 single HTTP request transaction. In this post, I will describe how to create and process multipart form data using Spring 3.1, the leading industry standard java application framework for creating Java web application.  I will start the discussion from the user perspective by talking about two main use cases and will expand it by describing how these two use cases translate into 7 possible application system use cases. Use Cases Here are some use cases of this feature: A browser submits or uploads a file to a web server using an HTML page. This is by far the most common use case of the multipart form data feature. A multipart is required because the form data and the file are both included in the request body. A java program (a java application or servlet instance) sends multipart form data to a web server (most likely a web service).  This is

Put your WARs on a diet with Maven: Maven and skinny wars!

I have seen a lot of confusion and misunderstanding on what is and why use a java enterprise concept called skinny war . In simple terms , a skinny war is a WAR where some of its dependencies are moved from the WAR module WEB-INF/lib to the EAR lib folder .   This post is specifically written to deal with skinny wars and does not explain or go into details which jars must be in the WAR class loader and which one do not have to . It is assumed that the reader is familiar with this concept and the concept of the WAR class loader versus the application class loader . Suffice it to say that typically, JAR that must be scanned by CDI usually belongs in the WAR class loader . Web fragments and jars with tag libraries are other candidates . Also, all test and provided scope artifacts must be specified in the WAR module as having maven remove them from the WAR does not make sense as they were never to be put there and having them in a deps POM file does not work . They will not be e

Tutorial on how to write and run a javaFX 11 Spring Boot program using Eclipse

Since the decoupling of javaFX from the JDK (see http://openjfx.io ) it has become somewhat of a challenge to use javaFX with the new module capability since java 9.  This tutorial is a brief roadmap between a java 8 javafx to the java 11 version.  All code for this sample resides in https://github.com/marioja/javafx  and can be imported into eclipse and should run as is.  You can also do this manually following these instructions. First you need to use an eclipse that supports the java 11 execution environment (Eclipse 2018-12 at the time of this writing).  Then you need to make sure you have a java 11 jdk installed(11.0.2 at the time of this writing).  I downloaded openjdk11  and unzipped into a folder on my home directory (user profile on windows).  Lets call this directory jdk-11.0.2.  You should add the eclipse -vm argument in the eclipse.ini file  to select jdk-11.0.2. Start eclipse and create a brand new workspace (one that does not exist).  I called it javafx-tutorial.  If