PHP Extension 5.18.0 released

  • New Feature: Tideways now automatically splits worker processes (Symfony Messenger, Laravel Jobs, WoltLab Suite Background Queue and Cronjobs) into per-message transactions, as if Profiler::start() and Profiler::stop() were called for each individual message. This feature can be disabled with the tideways.features.worker_mode INI setting.
  • Improvement: The behavior of dynamically enabling callgraph mode while the request already is in progress now behaves consistently, independent of how the callgraph is enabled (e.g. Profiler::enableCallgraphProfiler(), triggering a Tracepoint, or restarting Tideways with Profiler::start()).
  • Bugfix: Tideways will now remember the SQL used to create a MySQLi prepared statement and similar metadata (e.g. for GraphQL) across a Profiler::stop() / Profiler::start() cycle.
  • Bugfix: Fix possible crash when Tideways is stopped while an instrumented function is running.

About the author

Tim Düsterhus

I’m a Software Engineer at Tideways, where I work on the PHP extension. My focus is on helping developers gain accurate insights into the runtime behavior of their applications with minimal overhead.

I’m interested in PHP internals and regularly contribute performance improvements to the PHP engine. I enjoy working on problems where small changes can have a measurable impact on the performance and efficiency of PHP applications. Several of my performance optimizations have become part of PHP itself, helping improve the language for developers worldwide.