? Success

User tests: Successful: Unsuccessful:

avatar Hackwar
Hackwar
16 Nov 2014

Joomla currently loads each and every component seperately when it tries to retrieve the parameters of a component for example. On a vanilla Joomla, that means at least an additional 7 queries per pageload. This PR combines those into one query against the extension table and caching all results of that. This means less load for the database, less (albeit neglectable) memory consumption for Joomla and slightly less execution time for the overall system. The effects on a test-system might not be big, but it will be an optimization for larger systems.

This PR has one downside: So far the protected methode load() retrieved the data and then created the params object of each component. With the change I could either generate the params object for all components up front, or delegate that step to the getComponent() method and do it on demand. I choose the later option. This means that the load() method has a slightly changed behavior, which could be called a break in backwards compatibility. Since load() would only be accessible from inside the JComponentHelper class or a class inheriting from it and I simply can't think of a reason to create such an inheriting class, this change seems acceptable. However, I'd like to hear other opinions on this.

Test instructions:

  1. Enable debug mode, notice the number of queries on a page, its execution time and memory consumption.
  2. Apply the change.
  3. Reload the page and see a reduced number of queries and slightly reduced numbers for execution time and memory consumption.
avatar Hackwar Hackwar - open - 16 Nov 2014
avatar jissues-bot jissues-bot - change - 16 Nov 2014
Labels Added: ?
avatar wilsonge
wilsonge - comment - 16 Nov 2014

Can we keep Registry instead of JRegistry please?

avatar Hackwar
Hackwar - comment - 16 Nov 2014

sure

avatar Fedik Fedik - test_item - 17 Nov 2014 - Tested successfully
avatar Fedik
Fedik - comment - 17 Nov 2014

test
works good for me.
on the Test Installation on the homepage: before patch was 51 query, and 44 - after.

avatar chmst
chmst - comment - 17 Nov 2014

test
3.3.7_dev, 64 db-queries before - 37 after the patch

This comment was created with the J!Tracker Application at issues.joomla.org/joomla-cms/5124.

avatar chmst chmst - test_item - 17 Nov 2014 - Tested successfully
avatar chmst chmst - test_item - 17 Nov 2014 - Tested successfully
avatar chmst chmst - test_item - 17 Nov 2014 - Tested successfully
avatar chmst
chmst - comment - 17 Nov 2014

sry - multiple entries due to a pending browser

This comment was created with the J!Tracker Application at issues.joomla.org/joomla-cms/5124.

avatar roland-d roland-d - change - 18 Nov 2014
Status Pending Ready to Commit
avatar roland-d
roland-d - comment - 18 Nov 2014

Moving to RTC as we have 2 successful tests

This comment was created with the J!Tracker Application at issues.joomla.org/joomla-cms/5124.

avatar mbabker mbabker - change - 22 Nov 2014
Milestone Added:
avatar mbabker mbabker - reference | 45919f9 - 22 Nov 14
avatar mbabker mbabker - merge - 22 Nov 2014
avatar mbabker mbabker - close - 22 Nov 2014
avatar mbabker mbabker - close - 22 Nov 2014
avatar mbabker mbabker - change - 22 Nov 2014
Status Ready to Commit Closed
Closed_Date 0000-00-00 00:00:00 2014-11-22 02:42:53
avatar Hackwar Hackwar - head_ref_deleted - 22 Nov 2014

Add a Comment

Login with GitHub to post a comment