make php fast again
TRANSCRIPT
![Page 1: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/1.jpg)
Make PHP Fast AgainPHP Performance Benchmarks
![Page 2: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/2.jpg)
Peter Kokot github.com/petk
@peter_kokot
![Page 3: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/3.jpg)
Intro
![Page 4: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/4.jpg)
Why?
40% of users abandon a website that takes more than 3 seconds to load
![Page 5: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/5.jpg)
General performance improvements guidelines● Server hardware● Minimize and optimize image file sizes● Gzip compression● Pre HTTP/2 minimize and combine JavaScript and CSS files● CDN● Asynchronous scripts loading
![Page 6: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/6.jpg)
Synchronous vs. asynchronous loading
![Page 7: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/7.jpg)
![Page 8: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/8.jpg)
![Page 9: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/9.jpg)
Blackfire is a Performance Management Solution. It can be used at any step of your application's lifecycle: during development, test, staging and production, to profile, test, debug and optimize its performance.
![Page 10: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/10.jpg)
![Page 11: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/11.jpg)
![Page 12: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/12.jpg)
How to Achieve even more?
![Page 13: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/13.jpg)
DisclaimerThe following stacks can behave differently on different hardware and configuration.
The following benchmarks are advised to be made on your own as well to get a better overview.
![Page 14: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/14.jpg)
BenchmarksApache, Nginx, OpenLiteSpeed
![Page 15: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/15.jpg)
Apache Benchmarking Tool● ab -c 100 -n 100000 -k http://localhost/● Intel® Core™ i7-2670QM CPU @ 2.20GHz × 8 with 16GB RAM
![Page 16: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/16.jpg)
Static HTML File Benchmarksab -c 100 -n 100000 -k http://localhost/
![Page 17: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/17.jpg)
PHP Benchmarksab -c 100 -n 100000 -k http://localhost/
![Page 18: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/18.jpg)
PHP FPMTCP/IP Socket vs. Unix Domain Socketlisten = 127.0.0.1:9000 vs. listen = /run/php/php-fpm.sock
![Page 19: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/19.jpg)
PHP-PM● PHP-PM is a process manager, supercharger and load balancer for PHP
applications.● Based on ReactPHP● Out of the box support for Symfony, Laravel, Zend Framework and Drupal
> github.com/php-pm/php-pm
![Page 20: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/20.jpg)
PHP PM Benchmarks
![Page 21: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/21.jpg)
Swoole is an event-driven, asynchronous & concurrent networking communication engine with higher performance written only in C for PHP. Swoole includes components for different purposes: TCP/UDP Server and Client, Task Worker, Database Connection Pooling, Millisecond Timer, Event, Async IO, Async Http/WebSocket Client, Async Redis Client, Async MySQL Client, and Async DNS Requiring.
> www.swoole.com
![Page 22: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/22.jpg)
Swoole Benchmark
![Page 23: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/23.jpg)
Combined Benchmarks
> github.com/petk/benchmarks
![Page 24: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/24.jpg)
Next PHP Versions?● JIT - Just-In-Time compiling
● PHP 8 or PHP 7.2
![Page 25: Make PHP Fast Again](https://reader033.vdocuments.us/reader033/viewer/2022042611/58b8a52a1a28abc06d8b5cfb/html5/thumbnails/25.jpg)
Thank you!Questions welcome