Performance v2.3.0

Hook Performance Profiler – find the module slowing your shop

The module times every hook call, separately for each module, on real shop traffic. The dashboard ranks the heaviest modules, hooks, URLs and controllers, shows a timeline of a single page view and lists extremely slow calls.

About the module

Every installed module hooks into PrestaShop and adds its own time to page generation. When the shop slows down, it is usually unclear which module is responsible, and switching modules off one by one in production is risky and slow.

Hook Performance Profiler measures the execution time and memory growth of every hook, separately for each module, and collects them from real front-office and back-office page views. Measurements are written with one query at the end of each request, and sampling lets you profile only part of the traffic. The module uses a single override, the Hook class, and does not change the PrestaShop database layer.

How it works

  • Install the module. A "Performance Profiler" tab appears in the menu.
  • Set sampling (e.g. 10–20% of production traffic), the warning threshold in ms and log retention.
  • After a few hours or days of traffic, open the dashboard: the summary is calculated immediately, and the full report loads with one button.
  • Check the module and hook rankings, and in advanced mode the controller ranking and cohort analysis.
  • Click "View" next to a slow call to see the waterfall of the whole page view. Export the report to CSV or PDF.

Who it's for

  • Shop owners whose site slowed down after installing or updating modules.
  • PrestaShop agencies and developers who need to point a client to a specific module and hook quickly.
  • Shops with many modules, where switching them off one by one is not an option.
  • Teams that want to compare performance before and after a deployment.

What this module is not

It does not make the shop faster by itself: it shows where the problem is, and the fix depends on the module concerned. It does not measure browser network TTFB (processing time is measured on the PHP side), does not count SQL queries and cannot see code that runs outside the hook mechanism.

What it solves

  • The shop slowed down and nobody knows why

    After installing or updating a module, pages take longer to load, but nothing points to the culprit.

  • Dozens of modules on every page

    A single page view runs dozens of hooks from different modules. Without measurement it is hard to tell what each one costs.

  • Disabling modules one by one is risky

    Trial and error in production breaks the shop for customers, and a development copy has no real traffic.

  • Developer tools are not built for production

    PrestaShop's debug mode and profiling only show the current request and keep no history of customer traffic.

  • The problem only happens sometimes

    Occasional, very slow calls are easy to miss. Without a warning log there is no way to go back to them.

Key features

  • Heaviest modules ranking

    Average and maximum time per page view for every module, with page views and call counts. Modules above the warning threshold are flagged SLOW.

  • Hook ranking with attached modules

    Hook time, total calls and average calls per page view. In advanced mode, the list of modules attached to each hook with their status: active, no calls or disabled.

  • URL and controller rankings

    Which addresses and which page types (e.g. product page, category, orders in the back office) are consistently slow, with a “what runs here” list for each URL.

  • Single page view waterfall

    A timeline of every hook call in one page view: order, start, duration and memory. Action and display hooks are colour-coded.

  • Warnings and recommendations

    Calls above the threshold with the page URL and a link to the waterfall. Rule-based recommendations point to the heaviest modules, rising processing time and too high sampling.

  • Trend and cohort analysis

    A daily server processing time trend and a weekly module cohort grid help you find which install or update slowed the shop down.

  • Safe in production

    A single override (Hook class), profiler errors never interrupt the shop, one write query at the end of each request, traffic sampling and automatic cleanup of old logs.

  • Fast dashboard

    The summary is calculated immediately; the full report and advanced mode load on demand. Composite indexes and a module name cache keep it quick with large log volumes.

  • CSV and PDF export, three languages

    A report for a spreadsheet or for your client. Dashboard, settings and export are available in Polish, English and French.

Frequently asked questions

Which PrestaShop versions are supported?

PrestaShop 1.7 to 8.x, on PHP 7.1 or later. We tested it on PrestaShop 8.0 and 8.2. On PrestaShop 9, try it on a test copy first.

Does the module slow the shop down?

The overhead is small: measurement is two time readings per call, and data is written with one query at the end of the request. The dashboard shows the measured profiler overhead. On high traffic, set sampling to 5–20%.

Can I use it on a production shop?

Yes, that is what sampling and automatic log cleanup are for. As with any module that uses an override, we recommend checking it on a test copy before the first production install.

What if another module also overrides the Hook class?

PrestaShop will report an override conflict during installation. This is rare (e.g. some cache modules). In that case we will help you merge both overrides into one file.

Does it show the real TTFB?

No. The module measures processing time on the PHP side, from the start of the request to the end of page generation. It does not include network, DNS, TLS or the web server before PHP.

Does it count SQL queries?

No. Counting SQL would require overriding PrestaShop's database class, which we deliberately avoided for safety. The module measures time and memory.

How long is data kept?

As many days as you set in the configuration (30 by default). Older logs are deleted automatically. Uninstalling the module removes the data table.

What does the license include?

A one-time purchase for one production domain, unlimited test domains, and 12 months of updates and support. After that the module keeps working, just without new versions.

Compatibility and terms

Compatibility
PS 1.7 – 8.x
PHP
7.1+
PrestaShop
1.7 – 8.x
PHP
7.1+
Override
1 (Hook class)
Languages
PL, EN, FR
Export
CSV, PDF
Support
12 months
License type
One-time purchase, 1 domain, 12 months of updates
Built for
PrestaShop 1.7–8.x shops, agencies, developers

Changelog

2.2.0

  • Full English and French translation of the dashboard, settings and CSV/PDF export.
  • Menu tab name in the employee's language (migration for existing installs).
  • CSV export with proper accented characters instead of transliteration.
  • New module logo.

Contact form

Regarding module: Hook Performance Profiler – find the module slowing your shop