web3tracer is a PHP profiler / tracer, derived from the old XHProf project, originally developed by Facebook. This is not a continuation of the original PHP profiler, but rather a different approach to profiling, with a different function call logging design and improved post-processing capabilities. web3tracer aims to:
- Log function calls with a lower overhead, so that it can accurately profile even "thin" functions, like getters and setters.
- Output full call trees, not just aggregated data
- Appropriately deal with recursive function calls (through a C port of the old xt2callgrind script), offering the following adventages:
- Correctly identify and account recursive functions' execution times
- Generate virtual call nodes for recursive cycles
- Generate a minimum of extra nodes, and decouple a minimum of function calls, so as to preserve visual integrity and brevity of the output
- The cycles processing differs fundamentally from the XHProf implementation in that it does not create a vast number of extra nodes for each recursed function call, but rather creates just one virtual node to which it connects the calls
- Output data ready to process with dedicated profiling browsers (for now, KCachegrind and XHProf's web tool)
- Be an indispensable php profiler tool for your PHP toolkit