perftools / xhgui

Web interface for XHProf profiling data can store data in MongoDB or PDO database
1.65k stars 342 forks source link

Implement callgraphs #13

Closed markstory closed 11 years ago

markstory commented 11 years ago

Build a nice looking way for developers to look at the critical path for a profile run. This visualization should let you see the following things:

liuggio commented 11 years ago

:+1:

rajiff commented 11 years ago

Is there a sample screenshot for this or some pointers on how this will look (as per your wish, though i know what this is)

markstory commented 11 years ago

@rajiff Not yet, but I'll draw up a mockup see what you guys think of it. Originally I was thinking of using one of d3's flow graph types to do it. This, this and this are some places I was going to try starting from. Basically a graph that shows the call stacks in a tree form and indicates % of time used as color and thickness of connecting line. More time == bigger bars / darker colors.

bertrandmalet commented 11 years ago

I think a nice evolution of the callgraph feature could be an aggregted graph of multiple calls, for exemple within a period. It could be usefull to find real critical path from production servers excluding some rare expensive calls (eg cache refresh), pretty much like a 95th percentil.

markstory commented 11 years ago

I've been working on fixing the existing issues with the callgraph by exploring force directed graphs which can contain loops/cycles. Aggregated callgraphs are a neat idea, something to consider in the future for sure.

markstory commented 11 years ago

Callgraphs are working as far as I know. The critical path of any run is highlighted by size of the balls and thickness of lines connecting balls. Any other issues can be worked on separately in the future.