How do a read a xdebug profile in webgrind?

David picture David · Aug 17, 2011 · Viewed 13k times · Source

I have setup xdebug and webgrind and I have generated a profile so I can start improving the speed of my code execution. I have displayed the profile in webgrind but I haven't got a clue what any of it means. All the googling I have done doesn't really explain any of it either.

Could someone please explain the basics of reading a webgrind report:

Invocation Count

Total Self Cost

Total Inclusive Cost

What the different colours mean

What the coloured bar means

Calls

Total Call Cost

Count

Answer

ChrisA picture ChrisA · Aug 17, 2011

The basic output lists all the different functions, methods, and included/required files.

  • Invocation Count: The number of times the function has been called

  • Total Self Cost: The total time it took to execute the raw php in this function (time taken to execute your other custom functions is excluded.)

  • Total Inclusive Cost: Total time, including any other functions called (PHP internal, or your functions)

  • What the different colours mean?

    • Blue are PHP internal functions
    • Green are your class methods
    • Orange are procedural functions
    • Grey is time taken to include, or require .php files.
  • What the coloured bar means? Graphical display of breakdown of time for each type as above.

  • For the last ones, I assume you've clicked the arrow to open a particular function?

    • Calls: The functions/methods called in executing this function

    • Total Call Cost: The total time executing this function, when called from the parent function

    • Count: Number of times the parent calls the child.