Search

I had a thought today — one that I cannot confirm by looking at the code. Can somebody confirm whether or not the profiler information (execution times, slow queries etc) occurs on every single page load, or only when viewing ?profile?

I'm under the impression that this information is created every single page load, regardless of whether the Profiler is viewed or not. Appending ?profile simple triggers the profiler to view this information.

Is this a waste of resources — could it be a performance burden? I ask because I understand that every single query is logged and its SQL stored as a string inside an array. When there are 1000+ queries on a page, I wonder whether storing all of these strings unnecessarily is eating memory on the server.

Would it be worth streamlining the request stack so that the debugging/profiling bits are only built when required?

After speaking with Alistair — this is a known issue and is to be rectified in Symphony 2.1.

I’ve started to rethink my initial assumption. Although it adds overhead, I think the profile information should be built on every page load (even when not viewing ?debug or ?profile, but it should only be built if the user is logged in — just as only logged-in users can only see ?debug anyway.

The reason being is that this information can then be used in other useful ways. One example being an implementation of FirePHP to expose debug information to Firebug for super-quick access:

Firebug console with FirePHP enabled

If this is to remain, without the suggested changes for disabling profiling in the core, then I’ll compile the above into an extension.

It would also be nice if the profiler could display average values over the last n requests since my server tends to be either really quick or, every 20th request, really slow. :-)

Hmm it would require some sort of logging for performance comparisons, but could be written as a self-contained extension I imagine.

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details