Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Profiling and performance

Find out where an application spends its time - exp:benchmark in HTTP, kernel and micro modes, comparing against a baseline, the debug bar's timings and queries, OPcache and Velocity, and the usual causes of slow pages.

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/creators/app-creators/profiling-and-performance.md

On this page

Profiling and performance

This page is for application creators who make code faster. Measure, change one thing, measure again (Benchmarking, Benchmark reference).

Contents

  1. Measuring pages
  2. Inside a request
  3. Comparing fairly
  4. The usual causes

Measuring pages

php bin/php/console exp:benchmark --save=var/benchmark/base.json --allow-root-user
# change something
php bin/php/console exp:benchmark --baseline=var/benchmark/base.json --threshold=15 --allow-root-user
php bin/php/console exp:benchmark --cold --requests=50 --allow-root-user   # past the response caches

It requests the front page, menu pages, search and the admin login, 100 times each after warm-up, and prints median, p90, p99 and more.

Inside a request

  • exp:benchmark kernel --repeat=30 times boot, render (cold and warm), INI load, a content fetch, a database round trip and cache writes and reads in-process.
  • exp:benchmark micro times pure-PHP hot paths without HTTP or a database.
  • The debug bar shows each request's SQL queries, templates and timings (Exp debug bar).
  • Under Velocity, the opcode cache profile shows why a page costs what it does (Velocity and the opcode cache).

Comparing fairly

Same machine, nothing else running, OPcache as in production, Xdebug off, and judge two servers only by runs made back to back. Every run records its environment, and a comparison with a baseline made under another setup says so.

The usual causes

SymptomCauseFix
Many queries per pagefetches in loops, load_data_map on listsfetch once, limit, cache block
Slow first view after deploycaches clearedwarm (php bin/php/warm.php)
Slow under Velocity after a changeworkers not restarted or OPcache not revalidatingexp:velocity deploy
Slow publishheavy work in workflows or listenersmove it to a queue
Slow admin listsunbounded countspaged queries

Become an Exponential Partner

Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x