Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-53667

Extremely poor client side performance on large learning plan page

    XMLWordPrintable

    Details

    • Testing Instructions:
      Hide
      1. Load a plan and a template with 1000 competencies and make sure that it is dramatically faster than without the patch.
      2. On those pages, perform an action that will refresh the page using JS + Template.
        • Make sure that you can see a dramatic improvement as compared to the version without a patch
      3. Do an exploratory test to ensure that strings are always translated.

      Use those to create a framework with hundreds of competencies

      Show
      Load a plan and a template with 1000 competencies and make sure that it is dramatically faster than without the patch. On those pages, perform an action that will refresh the page using JS + Template. Make sure that you can see a dramatic improvement as compared to the version without a patch Do an exploratory test to ensure that strings are always translated. Use those to create a framework with hundreds of competencies https://github.com/damyon/moodle-tool_lpimportau http://www.australiancurriculum.edu.au/technical/download You may need to temporarily increase the maximum depth of competencies in their framework (get_taxonomies_max_level) Make sure this was merged: https://github.com/damyon/moodle-tool_lpimportau/pull/1/files (or use the branch 'subsystem' from Fred's fork)
    • Affected Branches:
      MOODLE_31_STABLE
    • Fixed Branches:
      MOODLE_31_STABLE
    • Pull from Repository:
    • Pull Master Branch:
      MDL-53667-master

      Description

      On page with large datasets I have noticed that the page takes an incredible time to load. 25 seconds spent making javascript work at 100% CPU on my mac desktop on the prototype site.

      Some of these issues can be solved by paging and so on, but I think some analysis/fixes of the underlying causes should be done and have benefits elsewhere - espsecially if this is going to be a common pattern of development.

      Steps to reproduce:

      • Login as student
      • Visit 'my learning plans' dashboard block
      • Click on large learning plan

      Expected results:

      • The page renders instantly (no user-notiable lag)

      Actual results:

      • The page takes about 25 seconds to render - the time is spent in javascript, using 100% CPU time of my 2.6Ghz Core i7

      Here is a screencast of me carrying this out with the Safari timeline browser in view to see where the time is being spent

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              fred Frédéric Massart
              Reporter:
              poltawski Dan Poltawski
              Peer reviewer:
              Mark Nelson
              Integrator:
              David Monllaó
              Tester:
              cameron1729
              Participants:
              Component watchers:
              Jean-Philippe Gaudreau, Steve Massicotte, Serge Gauthier, Issam Taboubi, Adrian Greeve, Jake Dallimore, Mathew May, Mihail Geshoski, Peter Dias, Sujith Haridasan, Andrew Nicols, Jun Pataleta, Michael Hawkins, Shamim Rezaie, Simey Lameze, Matteo Scaramuccia, Andrew Nicols, Jun Pataleta, Michael Hawkins, Shamim Rezaie, Simey Lameze
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Fix Release Date:
                23/May/16