淘汰赛 + 大数据集性能

Posted

技术标签:

【中文标题】淘汰赛 + 大数据集性能【英文标题】:Knockout + large dataset performance 【发布时间】:2013-05-29 10:38:27 【问题描述】:

我有一个非常大的纬度/经度数据集,我希望能够过滤和显示客户端。我已经尽我所能进行了分析和优化,但是还有什么可以提高性能的方法吗?

精度需要达到英里/公里级别。 我需要 IE 7/8/9/10 支持,尽管我接受我们越往下走,性能可能会越差。 我没有绝对依赖任何库,只要是最适合这项工作的。

大致

铬:1.1s 火狐:0.9s IE10:5.1s IE9:3s

http://jsfiddle.net/hRvKz/

// Apparently I must post code... but out of context it would make no sense.
// Checkout jsfiddle.

【问题讨论】:

有什么原因不能在服务器上进行过滤? 我正在试验是否可以使客户端过滤比服务器回发过滤更快,因为它会导致一些延迟。服务器位于美国,用户遍布全球。 【参考方案1】:

您的代码会在标准和每个样本之间创建依赖关系。 我创建了一个计算函数,以便在标准和样本数组之间创建依赖关系。这是为了只创建几个依赖项。

修改后的代码只需要 20ms,而原始代码需要 2700ms

viewModel.computedLocations = ko.computed( function () 
    var lat = viewModel.filters.lat();
    var lng = viewModel.filters.lng();

    var locs = viewModel.locations();
   ko.utils.arrayForEach(locs, function (item) 
        item.roughDistance = equirectangularApproximation(item.lat, item.lng, lat, lng);
        item.closeDistance = sphericalLawOfCosines(item.lat, item.lng, lat, lng);
        item.closeDistanceStatic = item.closeDistance;
        item.exactDistance = haversine(item.lat, item.lng, lat, lng);
    );
    return locs;
);

See fiddle

希望对你有帮助。

【讨论】:

非常好。与您发布此内容时,我正在走类似的道路,谢谢!

以上是关于淘汰赛 + 大数据集性能的主要内容,如果未能解决你的问题,请参考以下文章

第十六周 项目2--大数据集上排序算法性能的体验

HCIP-华为HCIP存储视频教程(大数据精品课 概述+高级特性+部署实战+性能优化+最佳方案+排错)39集 CBDS V3.039课时

什么对 SAS 数据集性能的影响更大 - 观察数或变量数?

Redis的回收策略(淘汰策略)是什么?

更有效地显示非常大的数据集

lamdba 性能测试 大数据内存查找