Opened 12 years ago

Closed 12 years ago

#3261 closed defect (fixed)

0.9: Performance improvement in filtering code used by various in-memory datastores.

Reported by: Jared Jurkiewicz Owned by: Jared Jurkiewicz
Priority: high Milestone:
Component: Data Version: 0.9
Keywords: Cc:
Blocked By: Blocking:

Description

0.9: Performance improvement in filtering code used by various in-memory datastores.

The way the current datastore implementations in both dojox and dojo modules do the filter flow, it is inefficient in how it recomputes regular expressions for each match. But pulling this out so it happens just once per pass, it improves query performance on large datasets (such as 10K Json items), from 922ms -> 172 MS, returning 1111 hits, for example. So, it's close to a 5X performance increase for the filtering fetch code with minimal changes overall.

This makes autocompleter with 10K items pretty darn usable from my experimentations. The time in AutoCompleter? comes out to mainly being the widget itself in constructing such as large view, not in the data query part.

Attachments (2)

dojo.data.JsonItemStore_20070605.patch (2.8 KB) - added by Jared Jurkiewicz 12 years ago.
JsonItemStore? patch
dojox.data_stores_20070605.patch (7.6 KB) - added by Jared Jurkiewicz 12 years ago.
Dojox stores patch

Download all attachments as: .zip

Change History (9)

comment:1 Changed 12 years ago by Jared Jurkiewicz

It's actually a 5.3X improvement...

Changed 12 years ago by Jared Jurkiewicz

Changed 12 years ago by Jared Jurkiewicz

Dojox stores patch

comment:2 Changed 12 years ago by Jared Jurkiewicz

(In [8911]) Putting in performance patch. refs #3261

comment:3 Changed 12 years ago by Jared Jurkiewicz

(In [8912]) Putting in performance patch. refs #3261

comment:4 Changed 12 years ago by Jared Jurkiewicz

Tested on:

Windows:

IE 6.0 IE 7.0 Firefox: 2.0.0.4 Opera 9.2 Seamonkey 1.1.1

OS-X:

WebKit?.

All changes passed.

comment:5 Changed 12 years ago by Jared Jurkiewicz

Also tested Windows: Firefox 1.5.0.12, for what it's worth.

comment:6 Changed 12 years ago by Jared Jurkiewicz

Status: newassigned

comment:7 Changed 12 years ago by Jared Jurkiewicz

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.