假设您具有以下数据类型(数字作为参数填充):
目标是计算看起来像23.13等的 b ody- m ass i ndex。
bodyMassIndex =体重/身高^ 2
我想与bmi一起工作,例如将bmi(浮点数)转换为int或将bmi除以模数等。
在计算速度方面,先保存bmi,然后在其他计算中使用变量(选项a),还是在其他计算中再次进行公式计算(选项b),是否更快??
**bmi** = weight / height^2
OtherCalculation = **bmi** % 10
...
bmi = weight / (height^2)
OtherCalculation = (weight / height^2) % 10
OtherOtherCalculation = (weight / height^2) * 100
...
编辑:我正在使用Python编写
答案 0 :(得分:1)
我决定使用python的timeit
模块对您的示例进行基准测试。我选择了任意的高度和宽度,因为这些值不会影响比较结果。使用下面的脚本,我发现(毫无疑问)将值保存到中间变量对于Python 3.x和Python 2.x至少快两倍。
from timeit import timeit
runs = 1000000
option_a = "(w / h ** 2)"
option_b = "bmi"
setup_a = "w = 4.1; h = 7.6"
setup_b = "{}; bmi = {}".format(setup_a, option_a)
test_1 = "v = {} % 10"
test_2 = "v = {} * 100"
print(timeit(test_1.format(option_a), setup=setup_a, number=runs))
print(timeit(test_1.format(option_b), setup=setup_b, number=runs))
print(timeit(test_2.format(option_a), setup=setup_a, number=runs))
print(timeit(test_2.format(option_b), setup=setup_b, number=runs))
Python 3中的结果
0.2930161730000691
0.082850623000013
0.17264470200007054
0.06962196800031961
在Python 2中
0.126236915588
0.0508558750153
0.113535165787
0.0394539833069