javascript - Math.sqrt 和 Math.pow 与 JavaScript 中的 Math.abs 之间的性能差异?
问题描述
当我发现涉及减法和总和(曼哈顿距离)之间的绝对值的公式在执行时间上的效率低于涉及两个幂表达式之和的平方根的公式时,我正在使用 JavaScript 进行编程任务(欧几里得距离)。我在这里做错了什么还是正常的?我认为绝对值不会很难执行。
function Man_dist(x0, y0, x1, y1) {
return Math.abs(x1 - x0) + Math.abs(y1 - y0);
}
function Eucl_dist(x0, y0, x1, y1) {
return Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2));
}
我console.time("Execution time")
用来测试性能,我发现 Eucl_dist 通常比 Man_dist 低几微秒:
console.time("Man Execution time");
Man_dist(5, 3, 24, 23);
console.timeEnd("Man Execution time");
console.time("Eucl Execution time");
Eucl_dist(5, 3, 24, 23);
console.timeEnd("Eucl Execution time");
我根据@Bergi 的建议发布了我用于基准测试的代码
解决方案
推荐阅读
- python - googletrans python AttributeError:“NoneType”对象没有属性“组”
- visual-studio - 如何在优化校准上绘制 CImage?MFC
- python - 从列表中更新熊猫数据框值
- android - android以编程方式为来电设置名称
- android - 如何将我的应用程序从 expo 弹出到裸反应本机代码
- python - 如何使用数据帧与 pyspark 执行三重连接?
- powershell - 通过 PowerShell 添加新团队的问题
- c# - 拼写检查数据网格单元格
- javascript - 如何以 AM PM 格式计算时差
- svg - 动画 SVG:点击动画仅在点击边框时有效