LokiJS与标准Javascript对象访问
LokiJS vs Standard Javascript Object Access
LokiJS与按键访问标准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,通过键直接访问对象会有任何性能优势吗?
alert(obj[id].name);
alert(lokicollection.by('id', id).name);
使用LokiJS枚举对象会有任何性能优势吗?
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]];
}
除了关于开发工具和特别基准测试的非常有效的评论之外,最重要的是JS中数据结构的性能不能简单地概括。稀疏阵列的性能不如密集阵列,混合类型阵列的性能也不如单一类型阵列,因为底层引擎倾向于根据阵列中包含的数据进行智能优化。LokiJS速度很快,它被优化为使用更丑陋但更快的迭代(例如,用于循环而不是forEach),并保持数组密集,但最终LokiJS在后台做了更多的工作:索引、计算视图、发射事件等。这些操作是以性能为代价的,这是简单的数组插入操作所没有的成本。像LokiJS这样的解决方案的有用性在于快速检索过滤/排序的数据,以及后台重新计算视图(以及将数据持久化到磁盘/localstorage/indexeddb的能力)。因此,除非您需要持久性并有大量数据需要管理,否则我认为您不会真正从LokiJS中获得性能。这是写LokiJS的人写的;)
相关文章:
- 如何使用此从对象访问构造函数
- LokiJS与标准Javascript对象访问
- JavaScript子对象访问自己的值
- Javascript嵌套对象访问根级别
- 即使使用 angular.fromJson() 也无法从 json 对象访问字符串
- 从表单到 Ajax 的动态对象访问
- 将 NodeJS 模块范围变量作为对象访问
- 能够从Meteor中的辅助对象访问特定值
- 从JavaScript对象访问数据's数组成员变量
- 如何从 React 中的事件对象访问自定义属性
- 函数中的对象访问;不起作用
- 如何在javascript中从JSON对象访问数组
- 如何从C#.Net Webbrowser对象访问javascript变量
- Javascript中最快的类/对象访问/实例化是什么
- 覆盖对象访问 JavaScript
- 如何从 jquery 中的另一个对象访问在一个对象中声明的变量
- 从 JavaScript 对象访问变量
- 如何从范围对象访问数据到指令
- 从vue.js中的对象访问v-repeat-overarray中的属性
- jQuery:从具有一个类的多个实例的对象访问元素