@ottokekalainen @Seravocom SERAVO.COM
Photo by Nicola Sapiens De Mitri
Optimizing WordPress performance with XDebug and PHP profiling
@ottokekalainen @Seravocom SERAVO.COM
XDebug
a tool for developers toanalyze PHP execution to find bottle necks and anomalies
@ottokekalainen @Seravocom SERAVO.COM
Xdebug installation example:$ sudo apt-get install php-xdebug$ nano /etc/php/fpm/conf.d/20-xdebug.ini
; Enable xdebugzend_extension=xdebug.so
; Enable php profiling with get param XDEBUG_PROFILE=1xdebug.profiler_output_dir=/tmpxdebug.profiler_output_name=cachegrind.out.%t.%pxdebug.profiler_enable_trigger=1
$ sudo service restart php-fpm
Do this in your development environment, e.g. Vagrant image.
Don't use production site, XDebug makes the site much slower!
@ottokekalainen @Seravocom SERAVO.COM
Profiling run of WordPress front page/tmp $ curl -I http://example.com/?XDEBUG_PROFILE=1/tmp $ ll -h11M cachegrind.out.1455198789.5601/tmp $ head cachegrind.out.1455198789.5601 version: 1creator: xdebug 2.2.3cmd: /data/wordpress/htdocs/index.phppart: 1positions: lineevents: Timefl=php:internal...
@ottokekalainen @Seravocom SERAVO.COM
Webgrind installation example:$ cd /data/wordpress/htdocs$ git clone https://github.com/alpha0010/webgrind $ sudo apt-get install graphviz
@ottokekalainen @Seravocom SERAVO.COM
Filter for usual suspects: load, open, curl, query
@ottokekalainen @Seravocom SERAVO.COM
Pinpoint the bottle neck
@ottokekalainen @Seravocom SERAVO.COM
Hunt down that rare beast:$ export LANG=C; for i in {1..99}; do curl -IL -H "Pragma: no-cache" -w "%{time_total}\n" -o /dev/null -s "http://wp-esittely.wp-palvelu.fi/?XDEBUG_PROFILE=1"; done$ ll -Sh /tmp-rw-r--r-- 111M helmi 11 16:29 cachegrind.out.1455200976.5601-rw-r--r-- 91M helmi 11 16:29 cachegrind.out.1455200984.5601-rw-r--r-- 89M helmi 11 16:29 cachegrind.out.1455200972.5604-rw-r--r-- 89M helmi 11 16:29 cachegrind.out.1455200964.5604-rw-r--r-- 88M helmi 11 16:29 cachegrind.out.1455200973.5604-rw-r--r-- 87M helmi 11 16:29 cachegrind.out.1455200963.5601-rw-r--r-- 87M helmi 11 16:29 cachegrind.out.1455200967.5601
@ottokekalainen @Seravocom SERAVO.COM
Now go and fix your slow code!
@ottokekalainen @Seravocom SERAVO.COM
PREMIUM HOSTING AND PROFESSIONAL UPKEEPFOR WORDPRESS
Thank You!