Performance is the effectiveness of a computer system, as measured by agreed-upon criteria, such as throughput, response time, and availability. – Zeev Suraski
But why are we talking about performance?
In our recent webinar, “Optimizing performance,” Zeev Suraski talked about ways to help measure and optimize performance. The first step is to recognize that performance isn’t a one-off or one-stop process. It’s a combination of actions taken through several phases – development, measurement, optimization, monitoring – that bring forward measurable improvements on your performance, bottom line, and customer satisfaction.
Let’s walk through each phase.
Setting expectations for performance is critical. Define expectations by considering what users expect, what load your system can handle, and design benchmarks for the application to fit the needs. As you develop, pay attention to performance but don’t optimize prematurely as you don’t want to make your code overly complex to see only minimal gains.
Measuring performance is hard. It’s easy to get data but really difficult to get accurate results to make meaningful choices. In the webinar, Zeev discussed the challenges, how to perform useful measurements, and listed best practices. Which started and ended with: AUTOMATION.
There are several layers within your web stack to implement change that optimize performance. Each technique varies in terms of the amount of gains you’ll see and the difficulty to implement. In the webinar, Zeev specifically discusses:
- PHP layer: Opcode caching and benefits of moving to PHP 7
- Web server layer: Configurations and type of hardware
- Layer between application code and data services: Data caching
- Layer between web server and PHP: Page caching
Finally, the key component is to monitor your application in production. Because production is never the same as your development environment. There are lots of tools, including Z-Ray (check it out here), to help keep your finger on the pulse, and allow you to react to performance issues before they happen and triage issues faster after they occur.
Remember that nothing is faster than a frustrated user clicking away from your site or abandoning your service. Using the principles, tips, and tools discussed in this webinar, help tune your application towards lightning-fast page loads and response times.
If you missed any of the webinars in the “Building the perfect PHP app for the enterprise” series, you can watch them on demand now.
You can register for our bonus webinar – Deploying PHP apps on the cloud – if you’re looking for ways to improve or automate your code deployment methods in the cloud.