首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LokiJS与标准Javascript对象访问

LokiJS与标准Javascript对象访问
EN

Stack Overflow用户
提问于 2016-05-07 01:55:56
回答 1查看 430关注 0票数 1

LokiJS如何与标准的按键访问javascript对象相比较?

代码语言:javascript
复制
var obj = {};

for (var i = 0; i < 10000; i++) {
    obj[i] = { name: 'name', description: 'desc', misc: 'misc' };
    lokicollection.insert({ id: i, name: 'name', description: 'desc', misc: 'misc' });
}

通过键直接访问对象会不会通过使用LokiJS来提高性能呢?

代码语言:javascript
复制
alert(obj[id].name);
alert(lokicollection.by('id', id).name);

枚举对象是否会通过使用LokiJS来提高性能?

代码语言:javascript
复制
var item, arr = lokicollection.where(function(obj) { return true });
for (var i = 0; i < arr.length; i++) {
    item = arr[i];
}

var item, keys = Object.keys(obj);
for (var i = 0; i < keys.length; i++) {
    item = obj[keys[i]];
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-07 07:56:16

除了关于开发工具和临时基准测试的非常有效的评论之外,底线是JS中数据结构的性能不能轻易地被概括。稀疏数组的性能不如密集数组,混合类型数组的性能不如单类型数组,因为底层引擎倾向于根据数组中包含的数据进行智能优化。LokiJS是快速的,它被优化为使用更丑但更快的迭代(例如用于循环而不是forEach)和保持数组的密集性,但最终LokiJS在后台做了更多的工作:索引、计算视图、发射事件等。这些操作都需要付出性能代价,这是一个简单的数组插入操作所没有的成本。像LokiJS这样的解决方案的有用之处在于快速检索经过过滤/排序的数据,并对视图进行后台重新计算(以及将数据持久化到磁盘/本地存储/索引数据库的能力)。因此,除非您需要持久化,并且需要管理大量的数据,否则我认为您不会真正从LokiJS中获得性能。(这是写LokiJS的人写的;)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37083710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档