Good morning,
The past week I've been making greater use of the profiler for some pull requests I was working on for the Joomla project (at the moment I'm probably one of the few that uses PhpEd for my regular PHP work in the project).
Since I've been using it more I had some questions regarding reported memory usage that I was curious about along with some suggestions that perhaps could be implemented in the profiler.
The main question I had about memory usage was an instance I saw last night where I was profiling a page, and while the page total was only about 50 MB of memory usage, in the profiler it also showed the PHP CORE (particularly a lot of str_replace calls) as using up about 1.3 GB of memory which I thought was pretty crazy, but obviously the page itself hadn't used that much memory so I was just curious about how I should interpret figures like that when I see them? For the most part as well I'm sort of ignoring the "with children" column too since it doesn't seem to be as useful, at least for what I've had to do so far.
On a separate note, here are a few requests I had for the SQL Profiler:
- Add a summary count number in (so we can easily see how many queries were executed on a particular page...right now we have the overall timing information, but nothing on how many queries were run which is usually just as valuable to know).
- For the profiler we have in Joomla, I added a feature a few years back to find duplicated queries. How we do that is by concentrating on any SELECT queries only and then only collecting the query string from the beginning up until where the WHERE clause begins and then collecting counts for each of these groupings. The reason for this, is particularly for a lot of applications I've worked with, there is a tendency for a lot of fairly duplicate queries to be run on a page (e.g. SELECT * FROM foo WHERE bar = 1, SELECT * FROM foo WHERE bar = 2, etc.) but if you exclude the WHERE part of the query you end up with a unique grouping (e.g. SELECT * from foo) that you can use to help identify a portion of the application that might be running a lot of duplicate queries (and therefore slowing down the page). Currently with the SQL profiler in PhpEd, since there's no information on duplicate queries so it's difficult to identify these situations.
Lastly, this one might already be possible but I commonly have the page I want to debug or profile already open within the Output Tab in PhpEd (e.g. in Joomla let's say /administrator/index.php?option=com_content)...I can add DBGSESSID=1 or -1 values if I want to debug or not debug, but I don't know if there's a value that can be used for profiling too? If so that's something quick that would be usable...however, overall having to add in the URL parameter is not as user friendly...I seem to remember the Run/Debug/Profile buttons could be clicked on as well from the Output Tab (but my memory could be faulty)...in any case though, right now from the Output Tab they are grayed out and it would be nice if you could activate those modes directly by clicking on a button
.
Thank you (looking forward to version 16)!