expandostore-getset
JavaScript performance comparison
Preparation code
<script>
var domCache = {},
domExpandoAttr = 'dom'+ (new Date()).getTime(),
domId = 1;
function domNextId(){ return domId++; }
function DOMExpandoStore(element, key, value) {
var expandoId = element[domExpandoAttr],
expandoStore = domCache[expandoId || -1];
if(value != null) {
if(!expandoStore) {
element[domExpandoAttr] = expandoId = domNextId();
expandoStore = domCache[expandoId] = {};
}
expandoStore[key] = value;
} else {
return expandoStore && expandoStore[key];
}
}
function DOMExpandoStoreSet(element, key, value) {
var expandoId = element[domExpandoAttr];
( (!expandoId)
? (element[domExpandoAttr] = expandoId = domNextId(), domCache[expandoId] = {})
: domCache[expandoId]
)[key] = value;
}
function DOMExpandoStoreGet(element, key) {
var expandoId = element[domExpandoAttr];
return expandoId && domCache[expandoId][key];
}
</script>
<script>
Benchmark.prototype.setup = function() {
domCache = {};
domId = 1;
};
Benchmark.prototype.teardown = function() {
domCache = {};
};
</script>
Test runner
Warning! For accurate results, please disable Firebug before running the tests. (Why?)
Java applet disabled.
| Test | Ops/sec | |
|---|---|---|
DOMExpandoStore |
|
pending… |
DOMExpandoStoreGet/Set |
|
pending… |
Compare results of other browsers
Revisions
You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:
- Revision 1: published
- Revision 2: published
0 comments