Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Profiling visualization tools?

Tags:

performance

I need to display profiling information pulled from a deeply embedded CPU, presenting it in a way which other developers on my team will be able to act upon. The profiling data is a snapshot of a cycle counter at the entry and exit of every function, so we have a call graph annotated with sub-microsecond timing accuracy. I'd prefer not to just dump out function names and timing like gprof, I'm looking for something easier to understand and act upon.

Has anyone worked with a particularly good profiling tool (on any platform), which made it easy to identify areas of the code to drill into? I'm looking for an inspirational example to follow for how to display the call graph, but if there is good tool with an input format I can massage my data to I'll use it. I could use Windows, Linux, or MacOS X to run the visualization tool.

A profiling article on IBM DeveloperWorks led me to GraphViz, with a profiling example on their site. Barring another suggestion here, I'll use GraphViz and mimic their profiling example.

like image 612
DGentry Avatar asked Sep 10 '08 18:09

DGentry


People also ask

What are profiling tools?

You can use profiling tools to identify which portions of the program are executed most frequently or where most of the time is spent. Profiling tools are typically used after a basic tool, such as the vmstat or iostat commands, shows that a CPU bottleneck is causing a performance problem.

What is data profiling in ETL?

Data profiling in ETL is a detailed analysis of source data. It tries to understand the structure, quality, and content of source data and its relationships with other data. It takes place during the Extract, Transform and Load (ETL) process and helps organizations find the right data for projects.

What is profiling in C#?

A profiler is a tool that monitors the execution of another application. A common language runtime (CLR) profiler is a dynamic link library (DLL) that consists of functions that receive messages from, and send messages to, the CLR by using the profiling API. The profiler DLL is loaded by the CLR at run time.


1 Answers

Another neat tool to visualize profiling data is the gprof2dot.py python script. It can be used to visualize several different formats: "This is a Python script to convert the output from prof, gprof, oprofile, Shark, AQtime, and python profilers into a dot graph." This is what the output look like:


(source: googlecode.com)

like image 143
none Avatar answered Dec 12 '22 17:12

none