最近完成查找离指定点最近的n个点的相关算法,一开始效果没有预期的好,勉强能够满足要求,但后来改用intel cpu的台式机测试,效果好了很多。具体测试结果如下:
AMD CPU台式测试:
Intel CPU 台式机测试:
intel CPU的台式机配置:
快速全球索引算法的查找效率为log2N,查找最近n个点估计是太多浮点运算,导致最终效率不高。
根据测试可知,通过索引查出的最近n个点与真实的值有些误差,并不是完全对应的上。如果不能允许这样的误差,则查找效率会大大降低。
这个误差可以在客户端消灭,方法为:根据查询出来的结果进行一次区域搜索,然后在搜索出来的结果中挑选出最近的n个点。
这样的做法增加了客户端的处理复杂度,但提高了服务器的高并发性。