淘汰赛 + 大数据集性能
Posted
技术标签:
【中文标题】淘汰赛 + 大数据集性能【英文标题】:Knockout + large dataset performance 【发布时间】:2013-05-29 10:38:27 【问题描述】:我有一个非常大的纬度/经度数据集,我希望能够过滤和显示客户端。我已经尽我所能进行了分析和优化,但是还有什么可以提高性能的方法吗?
精度需要达到英里/公里级别。 我需要 IE 7/8/9/10 支持,尽管我接受我们越往下走,性能可能会越差。 我没有绝对依赖任何库,只要是最适合这项工作的。大致
铬:1.1s 火狐:0.9s IE10:5.1s IE9:3shttp://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
希望对你有帮助。
【讨论】:
非常好。与您发布此内容时,我正在走类似的道路,谢谢!以上是关于淘汰赛 + 大数据集性能的主要内容,如果未能解决你的问题,请参考以下文章
HCIP-华为HCIP存储视频教程(大数据精品课 概述+高级特性+部署实战+性能优化+最佳方案+排错)39集 CBDS V3.039课时