【发布时间】:2017-03-17 11:52:49
【问题描述】:
我正在优化一些代码。我需要a+b+c 和x+y+z 的总和,我将计算这些变量的最小值和最大值。使用minmax 不是一种选择。我将分别进行这些计算。
以下哪个代码块更快?
min, max = 0, 0
max = [max, a + b + c, x + y + z].max
min = [min, a + b + c, x + y + z].min
或者我可以这样做:
min, max = 0, 0
sum, sum2 = a + b + c, x + y + z
max = [max, sum, sum2].max
min = [min, sum, sum2].min
这些变量的赋值和调用是否比我需要时计算它们更快?如果稍后在同一范围内需要这些总和,分配变量以提高可读性会更简洁。
我只是好奇 Ruby 的内部工作原理,而不是开发过程。
【问题讨论】:
-
“不能使用 minmax” – 为什么不呢?
-
我主要是问这个问题,以确定什么在 ruby、赋值或计算中更快,以及为什么。不计算实际的最小值或最大值。
-
如果
min和max与您的示例无关,您可以删除调用并创建两个数组。但是,这种级别的优化可能毫无用处。我会选择更容易理解的代码。
标签: ruby time variable-assignment