OptimizeRetrieval

Introduction

Retrieving the list of projects matching the search query takes way too long.

Technical description

The endgoal is to optimize project retrieval (LazyProject? or only retrieve project name). Also identify the other bottlenecks in the application, and per bottleneck, estimate how long it would take to remove.
  • Install JProfiler
  • profile ops_admin
  • describe bottlenecks and estimate fix-time

Incremental profiling

See RemovedUnusedFunctionalityFromReportPage for the smallish set of timesheets used.

Step 1

  • open select project page 116 ms
  • select project page: get all active (34 of 521) projects 1,3 s
    • 48 % getPersonByUid, called 163 times
  • open project page 247 ms
    • 28 % getPersonByUid
  • open report page ca 300 ms
    • 50% getProjectNamesAndUids (webservice call )
  • get basic report 311 ms
    • 82% Transform
  • get projects-total report 78 ms
  • get no tranformation 15 ms
  • get basic report per person 65 ms

The biggest bottleneck is select project page. Getting all project attributes is not necessary at this stage. A lazy project and project member cache (for example ehcache) is the obvious solutions.

New results with local ldap

  • get the 65 active projects: 391 ms
    • getPersonByUid called 62 times
  • get all 431 projects: 2,5 sec
    • 35% listtasks
    • ca 30% get project members

After optimization:

  • get active projects: 0.5 ms
  • get all projects: 279ms

If further optimazation is required, the retrieval and transformation of timesheetreports could be looked into, also OpsPersons could be cached.

Estimates

task hours todo
find bottleneck 4 0
fix 4 0
Total 8 0

Discussion


What is the current way of retrieving the project list? Are the ops webservices used, because these are fast enough I think. Or is ops admin using ldap directly? -- IvoVanDongen - 14 Aug 2008

-- IvanaCace - 05 Aug 2008

Topic revision: r7 - 02 Sep 2008 - 13:57:02 - IvanaCace

tip TWiki Tip of the Day
Disabling individual WikiWords
Prevent a WikiWord from being linked by prefixing it with an exclamation point. Example: To escape SunOs ... Read on Read more

 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback