#!/usr/bin/php stackcollapse-xdebug.php collapse php function traces into single lines. Parses php samples generated by xdebug with xdebug.trace_format = 1 and outputs stacks as single lines, with methods separated by semicolons, and then a space and an occurrence count. For use with flamegraph.pl. See https://github.com/brendangregg/FlameGraph. USAGE: ./stackcollapse-xdebug.php [OPTIONS] infile > outfile -h --help Show this message -t Weight stack counts by duration using the time index in the trace (default) -c Invocation counts only. Simply count stacks in the trace and sum duplicates, don't weight by duration. Example input: For more info on xdebug and generating traces see https://xdebug.org/docs/execution_trace. Version: 2.0.0RC4-dev TRACE START [2007-05-06 18:29:01] 1 0 0 0.010870 114112 {main} 1 ../trace.php 0 2 1 0 0.032009 114272 str_split 0 ../trace.php 8 2 1 1 0.032073 116632 2 2 0 0.033505 117424 ret_ord 1 ../trace.php 10 3 3 0 0.033531 117584 ord 0 ../trace.php 5 3 3 1 0.033551 117584 ... TRACE END [2007-05-06 18:29:01] Example output: - c {main};str_split 1 {main};ret_ord;ord 6 -t {main} 23381 {main};str_split 64 {main};ret_ord 215 {main};ret_ord;ord 106