FLUID-3684: Template parser uses Ye Olde Time Lineare Time cutpoint matching algorithm, leading to very poor performance with long cutpoints lists

Metadata

Source
FLUID-3684
Type
Bug
Priority
Critical
Status
Closed
Resolution
Fixed
Assignee
Colin Clark
Reporter
Antranig Basman
Created
2010-08-10T02:44:09.957-0400
Updated
2014-03-03T13:42:36.429-0500
Versions
  1. 1.2
  2. 1.3.1
Fixed Versions
  1. 1.3
Component
  1. Renderer

Description

The "cutpoint system" for the renderer was never really designed to be used, and as a result was implemented with a cutpoint matching algorithm with very poor time complexity. Now that in CollectionSpace we have acquired a template with 175 cutpoints, this is degrading performance significantly. See http://issues.collectionspace.org/browse/CSPACE-2569 and http://wiki.collectionspace.org/display/collectionspace/Performance+analysis+from+the+Client-side

Comments

  • Antranig Basman commented 2010-08-10T03:12:06.259-0400

    Fixed at revision 9987 - Accelerated cutpoint matching for cutpoints that consist of a single class. With this implementation, parsing of test template derived from CollectionSpace "object.html" with 175 class-based cutpoints is nearly 10 times faster - parse time reduced from around 500ms to around 70ms. Should people be found using many id-based selectors these could be accelerated too.

  • Golam Chowdhury commented 2011-03-03T16:49:20.064-0500

    Changed the "Affect Version" to 1.3.1.