View Issue Details

IDProjectCategoryView StatusLast Update
2503Composrcorepublic2016-07-03 00:54
ReporterChris Graham Assigned ToChris Graham  
PrioritynormalSeverityfeature 
Status resolvedResolutionfixed 
Summary2503: Performance unit test
DescriptionWrite a unit test that goes through every page in the admin's full sitemap, making sure it loads in, say, less than 0.15 seconds with caches on on the second try (so we know caches are primed).

Anything that would not hit that target would have to be resolved in some way or another - splitting it up, adding more caching, optimising, etc.

Based on an analysis of the web servers people use, live servers are around 10% of the performance of a decent modern desktop machine. So 0.15 seconds on a dev machine translated to 1.5 seconds on a live server based on (unfortunately) the cheap hardware that is commonplace.
TagsType: Performance
Attach Tags
Time estimation (hours)20
Sponsorship open

Sponsor

Date Added Member Amount Sponsored

Activities

Chris Graham

2016-06-19 17:11

administrator   ~4060

The unit test is now implemented. However, it's stalled right now as definitely some admin optimisation is needed.

Chris Graham

2016-06-30 14:38

administrator   ~4085

Going through this, we definitely need Admin Zone and CMS Zone improvements. Some of these are now done for v11, but further work is needed I think. Here are page-links currently needing optimisation...

:start (http://localhost/composr/index.php?page=start&keep_devtest=1): 0.66 seconds
site:galleries:browse:download_2 (http://localhost/composr/site/index.php?page=galleries&type=browse&id=download-2&keep_devtest=1): 0.53 seconds
site:warnings:edit (http://localhost/composr/site/index.php?page=warnings&type=edit&keep_devtest=1): 6.00 seconds
site:help (http://localhost/composr/site/index.php?page=help&keep_devtest=1): 0.53 seconds
docs:atag (http://localhost/composr/docs/index.php?page=atag&keep_devtest=1): 1.04 seconds
docs:codebook (http://localhost/composr/docs/index.php?page=codebook&keep_devtest=1): 0.71 seconds
docs:codebook_1 (http://localhost/composr/docs/index.php?page=codebook-1&keep_devtest=1): 3.21 seconds
docs:codebook_1b (http://localhost/composr/docs/index.php?page=codebook-1b&keep_devtest=1): 3.35 seconds
docs:codebook_3 (http://localhost/composr/docs/index.php?page=codebook-3&keep_devtest=1): 2.60 seconds
docs:faq (http://localhost/composr/docs/index.php?page=faq&keep_devtest=1): 1.08 seconds
docs:sup_hardcore_1 (http://localhost/composr/docs/index.php?page=sup-hardcore-1&keep_devtest=1): 0.56 seconds
docs:sup_hardcore_3 (http://localhost/composr/docs/index.php?page=sup-hardcore-3&keep_devtest=1): 0.53 seconds
docs:sup_hardcore_blocks (http://localhost/composr/docs/index.php?page=sup-hardcore-blocks&keep_devtest=1): 0.51 seconds
docs:sup_install_a_theme_in_composr (http://localhost/composr/docs/index.php?page=sup-install-a-theme-in-composr&keep_devtest=1): 0.55 seconds
docs:sup_pricing (http://localhost/composr/docs/index.php?page=sup-pricing&keep_devtest=1): 2.33 seconds
docs:tut_adv_comcode (http://localhost/composr/docs/index.php?page=tut-adv-comcode&keep_devtest=1): 0.67 seconds
docs:tut_adv_galleries (http://localhost/composr/docs/index.php?page=tut-adv-galleries&keep_devtest=1): 0.52 seconds
docs:tut_comcode (http://localhost/composr/docs/index.php?page=tut-comcode&keep_devtest=1): 0.75 seconds
docs:tut_designer_themes (http://localhost/composr/docs/index.php?page=tut-designer-themes&keep_devtest=1): 1.26 seconds
docs:tut_disaster (http://localhost/composr/docs/index.php?page=tut-disaster&keep_devtest=1): 0.63 seconds
docs:tut_email (http://localhost/composr/docs/index.php?page=tut-email&keep_devtest=1): 0.51 seconds
docs:tut_facebook (http://localhost/composr/docs/index.php?page=tut-facebook&keep_devtest=1): 0.86 seconds
docs:tut_fields (http://localhost/composr/docs/index.php?page=tut-fields&keep_devtest=1): 1.77 seconds
docs:tut_install (http://localhost/composr/docs/index.php?page=tut-install&keep_devtest=1): 0.53 seconds
docs:tut_intl (http://localhost/composr/docs/index.php?page=tut-intl&keep_devtest=1): 0.81 seconds
docs:tut_members (http://localhost/composr/docs/index.php?page=tut-members&keep_devtest=1): 0.69 seconds
docs:tut_mobile_sdk (http://localhost/composr/docs/index.php?page=tut-mobile-sdk&keep_devtest=1): 5.08 seconds
docs:tut_msn (http://localhost/composr/docs/index.php?page=tut-msn&keep_devtest=1): 0.72 seconds
docs:tut_optimisation (http://localhost/composr/docs/index.php?page=tut-optimisation&keep_devtest=1): 1.27 seconds
docs:tut_permissions (http://localhost/composr/docs/index.php?page=tut-permissions&keep_devtest=1): 0.59 seconds
docs:tut_programming (http://localhost/composr/docs/index.php?page=tut-programming&keep_devtest=1): 1.94 seconds
docs:tut_software_feedback (http://localhost/composr/docs/index.php?page=tut-software-feedback&keep_devtest=1): 1.42 seconds
docs:tut_structure (http://localhost/composr/docs/index.php?page=tut-structure&keep_devtest=1): 0.76 seconds
docs:tut_tempcode (http://localhost/composr/docs/index.php?page=tut-tempcode&keep_devtest=1): 1.47 seconds
docs:tut_themes (http://localhost/composr/docs/index.php?page=tut-themes&keep_devtest=1): 0.77 seconds
docs:tut_webapp (http://localhost/composr/docs/index.php?page=tut-webapp&keep_devtest=1): 0.66 seconds
docs:tut_webhosting (http://localhost/composr/docs/index.php?page=tut-webhosting&keep_devtest=1): 0.69 seconds
forum:topicview:id=11 (http://localhost/composr/forum/index.php?page=topicview&id=general-chat%2Fh&keep_devtest=1): 0.50 seconds
buildr:buildr (http://localhost/composr/buildr/index.php?page=buildr&keep_devtest=1): 1.25 seconds
cms:*
adminzone:*

I'll deal with everything outside cms and adminzone, then have a look there also.

Chris Graham

2016-07-03 00:54

administrator   ~4099

This is now done, there have been huge improvements. Taking the scientific (broadly measured) approach definitely yielded many optimisation targets I was not aware of.

All pages on the sitemap of bundled addons now load in under 0.5 seconds.

This is without the persistent caching on, and with all the non-bundled addons installed, and on PHP5. I'd expect a 0.2 minimum on live hosting (persistent cache, reduced addons, PHP7), so that's a 2 second maximum page load time for 10x slow servers.

Issue History

Date Modified Username Field Change
2016-04-25 23:17 Chris Graham New Issue
2016-04-25 23:21 Chris Graham Tag Attached: Type: Performance
2016-06-19 17:11 Chris Graham Note Added: 0004060
2016-06-30 14:38 Chris Graham Note Added: 0004085
2016-07-03 00:54 Chris Graham Note Added: 0004099
2016-07-03 00:54 Chris Graham Status Not Assigned => Resolved
2016-07-03 00:54 Chris Graham Resolution open => fixed
2016-07-03 00:54 Chris Graham Assigned To => Chris Graham