Opened 13 years ago

Closed 13 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 13 years ago.
JsonItemStore? patch
dojox.data_stores_20070605.patch (7.6 KB) - added by Jared Jurkiewicz 13 years ago.
Dojox stores patch

Download all attachments as: .zip

Change History (9)

comment:1 Changed 13 years ago by Jared Jurkiewicz

It's actually a 5.3X improvement...

Changed 13 years ago by Jared Jurkiewicz

Changed 13 years ago by Jared Jurkiewicz

Dojox stores patch

comment:2 Changed 13 years ago by Jared Jurkiewicz

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

comment:3 Changed 13 years ago by Jared Jurkiewicz

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

comment:4 Changed 13 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 13 years ago by Jared Jurkiewicz

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

comment:6 Changed 13 years ago by Jared Jurkiewicz

Status: newassigned

comment:7 Changed 13 years ago by Jared Jurkiewicz

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