Systems | Development | Analytics | API | Testing

Innocent looking array_unique - 2 Stories of performance hogs in Shopware 6 and Tideways own backend code base

This post tells a story of a performance mistake that is quickly made even by experienced developers: The expectation that a built-in PHP function has better performance than a better suited data structure written in PHP. The protagonist in these stories is array_unique, a function that takes a list of values and removes duplicate entries to return a list of each value occurring only once.

What's new? Winter Release 2021

Winter is clearly over here, the sun is shining, which means it is time to sum up everything that is new in the Tideways Winter 2021 release. Aside from this blog post explaining the new features in detail and the documentation, we also invite you to our 30 minute webinar "New Features and Improvements launched in Winter 2021" scheduled for 4th March 2021, 15:00 Europe/Berlin. The webinar will also include an exclusive intro to two brand new features that are launching into Beta next week.

Autumn Launch: PHP 8, Autoloading Performance, Deprecation Tracking, Alerting Improvements

This autumn launch for Tideways includes new features and improvements that we worked on the last three months. These are (in no particular order): Aside from this blog post explaining the new features in detail and the documentation, we also invite you to sign up for our 30 minute webinar "New Features and Improvements launched in autumn 2020" scheduled for 25th November 2020, 15:00 Europe/Berlin.

Summer Release: Slow SQL Query Log, Callgraph Profiler, Memory Tracepoints

This Summer Release of Tideways builds on the previous Beta Announcements in May's Spring Release and marks the general availability of This new functionality is fully available by updating the Tideways PHP Extension to version 5.2.4 and the Daemon to version 1.6.18. In addition to rolling out new features, we also renamed the concept of "Application" in Tideways to "Project" and we provide a detailed explanation why at the end of this post.

Five Challenges for Running Reliable PHP Background Processes

PHP isn't typically thought of as a solution when creating worker or background processes, jobs that typically can last for an extended period. These can be tasks such as image processing, file repair, and mass email batch jobs. Typically, PHP is linked with HTTP requests, requests which are short in duration and stateless in nature. However, just because of this enduring association, it doesn't mean that PHP can't be used for background processes. On the contrary.

An Introduction to PHP-FPM Tuning

PHP-FPM (or Fast Process Manager) offers several advantages over mod_php, with two of the most notable being that it is more flexible to configure and currently the preferred mode of running PHP by many in the community. However, if you're using your package manager's default configuration settings, then you're likely not getting the most out of it.

Four Logging Best Practices for Production Applications

Logging is an essential part of just about any PHP-based application; whether in a script or a larger application. However, how little is too little and how much is too much to log? If we don't log enough information, when something goes wrong, as it invariably does, then we won't have enough information available to determine what went wrong so that we can fix the problem. However, if we have too much information, then we'll be unable to filter out the white noise.