Process

The process of continuous improvement for performance is:

  1. Make a change
  2. Test the results
  3. Performance < 90? go to 1
  4. Performance < 100? go to 1

Performance scores

The performance scores shown on this website are the results of 5 performance tests run against a particular URL.

They can vary even if you don’t make changes.

Big images: (14 Feb 18:33)

Big images: (14 Feb 23:20)


Each test uses a slightly different configuration:

ClassifiedDevice?EmulationThrottling
MobileMoto G4Emulated Moto G4
CPU/Memory Power: 1929 CPU throttling: 4x slowdown (Simulated)
Network throttling: 150 ms TCP RTT, 1,638.4 Kbps throughput (Simulated)
MobileMoto G4Simulated iPhone6 on a Fast 4G connection
CPU/Memory Power: 1499 CPU throttling: 2x slowdown (Simulated)
Network throttling: 170 ms TCP RTT, 9,000 Kbps throughput (Simulated)
DesktopDesktop
1920 x 1080
Emulated Desktop
CPU/Memory Power: 1987 CPU throttling: 1x slowdown (Simulated)
Network throttling: 40 ms TCP RTT, 10,240 Kbps throughput (Simulated)
DesktopLaptop
1366 x
768
Emulated Desktop
CPU/Memory Power: 1981 CPU throttling: 1x slowdown (Simulated)
Network throttling: 40 ms TCP RTT, 10,240 Kbps throughput (Simulated)
DesktopDesktop
1920 x 1080
Emulated Desktop
CPU/Memory Power: 1979 CPU throttling: 1x slowdown (Simulated)
Network throttling: 40 ms TCP RTT, 10,240 Kbps throughput (Simulated)

Since the first test is for the slowest device with a poor network speed we might expect the results to be worst. But it really all depends on what the device is being asked to do when it gets the reply from the server.

Batch commands

I run these tests using a locally installed version of Lighthouse.

Example command: lh cwiccer.com/process/big-images/

setlocal
cd \apache\htdocs\lighthouse
call lighthouse https://%1 --view --only-categories=performance

echo Use hp.bat if you want to pause between individual tests

call lighthouse https://%1 --view --only-categories=performance --throttling.rttMs=170 --throttling.throughputKbps=9000 --throttling.cpuSlowdownMultiplier=2 --screenEmulation.width=375 --screenEmulation.height=667


rem And another
call lighthouse https://%1 --view --only-categories=performance --preset=desktop --throttling-method=simulate --screenEmulation.width=1920 --screenEmulation.height=1080


rem And another
call lighthouse https://%1 --view --only-categories=performance --preset=desktop  --screenEmulation.width=1366 --screenEmulation.height=768


rem And another
call lighthouse https://%1 --view --only-categories=performance --preset=desktop --screenEmulation.width=1920 --screenEmulation.height=1080


rem lighthouse --help
endlocal
  • The log file for each run is saved in the \apache\htdocs\lighthouse directory.
  • It’s saved as an HTML file with file name format: domain_date_time.report.html
  • The main content of the file is JSON, which can be extracted and (easily) parsed.
  • I’ve written a routine to view a summary of multiple results visually.

Saved versions of the home page