Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Be smart, be fast with Web Debug Toolbar and Bl...

K.Skaradziński
October 02, 2016
220

Be smart, be fast with Web Debug Toolbar and Blackfire.io

PHPCon 2016

K.Skaradziński

October 02, 2016
Tweet

Transcript

  1. The Wall Clock Time, or Wall Time, for a function

    call is the measure of the real time it took for PHP to execute its code: the difference between the time at which PHP entered the function and the time at which PHP left the function
  2. The CPU time is the amount of time the CPU

    was used for processing instructions.
  3. The I/O time is the time the CPU waited for

    input/output (I/O) operations.
  4. Network activity includes calls to databases like MySQL, PostreSQL, or

    MongoDB; HTTP calls to web services and APIs; calls to cache systems like Redis and Memcached; communications with services like queues, email daemons, remote filesystems; etc.
  5. Disk activity occurs when a program reads files from the

    filesystem, including when PHP loads a script or class file.
  6. Wall Time = CPU Time + I/O Time I/O Time

    = Network Time + Disk Time
  7. blackfire --samples=1 --new-reference curl http://www.goldenline.pl/ Blackfire cURL completed Graph URL

    https://blackfire.io/profiles/4cf06d0d-afab-484c-ba7a-c7377f7c4e48/graph Reference: #1. Untitled Wall Time 233ms CPU Time 228ms I/O Time 4.75ms Memory 43.4MB Network n/a SQL n/a
  8. blackfire --samples=1 --reference=1 curl http://www.goldenline.pl/ Blackfire cURL completed Graph URL

    https://blackfire.io/profiles/compare/4cf06d0d-afab-484c-ba7a-c7377f7c4e48... 5e719fd0-5839-4495-866a-142181a0f4a1/graph Wall Time 207ms -26ms -14.5% CPU Time 176ms -52ms -14.5% I/O Time 30.6ms +25.9ms +45.8% Memory 43.4MB +8.88KB n/s Network 13µs 294B 1rq SQL n/a -
  9. blackfire --samples=1 --reference=1 curl http://www.goldenline.pl/ Blackfire cURL completed Graph URL

    https://blackfire.io/profiles/compare/4cf06d0d-afab-484c-ba7a-c7377f7c4e48... 5e719fd0-5839-4495-866a-142181a0f4a1/graph 1 recommendation https://blackfire.io/profiles/5e719fd0-5839-4495-866a-142181a0f4a1/graph?set tings%5BtabPane%5D=recommendations Wall Time 207ms -26ms -14.5% CPU Time 176ms -52ms -14.5% ...
  10. .blackfire.yml tests: "Home Page": path: "/" assertions: - metrics.redis.connections.count ==

    1 - metrics.amqp.connections.count == 0 - main.memory < 40Mb
  11. Writing assertions on the main profile costs is as easy

    as adding a valid dimension name to the main. Prefix: • count • wall_time • cpu_time • memory • peak_memory • io • network_in • network_out
  12. .blackfire.yml scenarios: Pricing page: - /pricing Integrations page: - /integrations

    Blackfire.yml Validator: - path: /docs/validator method: POST samples: 10