请问一个数据大小为何引起巨大性能问题?

返回类型为double,最终结果并不大,但是前面系数为0.1、1、10时性能差距非常明显,难度 10 * 10 会比 1 * 1 更快?
算法是A*,不过感觉貌似跟算法没太大关系?

return 0.01 * ((from_node.x - to_node.x == 0 || 
                from_node.y - to_node.y == 0) ? 1 : ksqrt2);

t3.png
t1.png
t2.png

这是在release模式下生成的,1和0.1不明显,可能本身都不大,但是10就很明显了,而且debug下模式下 乘10的结果算出来得30多秒,惨不忍睹....

retun的值是graph.cost()
t1.png

阅读 2.3k
1 个回答

光是这句话不可能有毫秒甚至秒级的计算时间,你这外边有递归或者迭代吗?数据不同可能会影响递归或者迭代的次数,从而影响性能。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏