phacility / xhprof

XHProf is a function-level hierarchical profiler for PHP and has a simple HTML based user interface.
http://pecl.php.net/package/xhprof
Apache License 2.0
2.6k stars 925 forks source link

Fixed hp_execute_internal segfault on 5.6. #69

Open msonnabaum opened 9 years ago

msonnabaum commented 9 years ago

This should address the issue found in #63.

One approach could be to add an additional if clause for 5.6 and inline 5.6's version of execute_internal. Before doing that, I checked uprofiler to see how/if they'd addressed it and they did more or less what's in the PR here.

It's not clear to me why hp_execute_internal has inlined execute_internal in the past (performance optimization?), but it seems like calling execute_internal directly will be considerably easier to maintain.

This also adds a test from the example in #63.

beberlei commented 9 years ago

This change is a bit inefficient, because it uses the variables from EG global space instead of directly from zend_execute_data which is passed to the function anyways.

You could use our fork https://github.com/tideways/php-profiler-extension which adds PHP 5.6 support as well, performance improvements and is generally maintained. You can even use the precompiled binaries/packages for some systems from here: https://tideways.io/profiler/downloads