” an indication of in Xdebug

kcachegrindprofilingxdebug

I have an xdebug profile on a php script that I parsed with kcachegrind. Here is a screenshot showing that the most time spent inside any given function was spent inside <cycle 1> and the top 'Callers' were made from 'include' and 'include_once' in index.php.

kcachegrind of xdebug profile showing cycle 1

This profile was run during a stress-test using apache 'ab' so there were many concurrent connections occurring.

What does <cycle 1> indicate on an xdebug profile?

Best Answer

It is heuristic cycle detection. You can turn it off from toolbar or from menu "View->Detect cycles" or "View->Do cycle detection".

Cycle is something like recursion, both direct ( f() -> f() -> f() where -> means call ) and indirect ( f()->g()->f()->g()->f())

Callgring format (used in kcachegrind) is not saving full call stack, it stores only pairs caller-callee and it may be hard to restore longer cycles from this information

Related Topic