我目前正在尝试优化物理模型计算的速度。这个模型的特殊性在于它使用数百的输入参数,所有输入参数都存储在一个大的命名向量中:
initialize = c("temperature"=100, "airpressure"=150, "friction"=0.46)
模型虽然迭代数百次,但需要访问参数,可能会更新它们等等:
compute(initialize['temperature'], initialize['airpressure'])
initialize['friction'] <- updateP(initialize['friction'])
这是逻辑。但是我想知道这样做是否真的有效。按名称进行索引后会发生什么,它快吗?改变这种逻辑的一些想法:
通过向量中的索引访问每个参数,如下所示:
compute(initialize [1],initialize [2])
如果我使用这个最后的解决方案,当然我将失去代码的可读性(哪个参数实际上是初始化[1]?)。因此,一种方法可以是首先确定他们的立场:
temperature.pos <- 1
airpressure.pos <- 2
compute(initialize[temperature.pos], initialize[airpressure.pos])
当然,为什么我没有尝试这个并测试速度?好吧,在脚本中转换参数调用的每个位置需要花费数小时的时间,这就是我在做之前要求的原因。
也许还有一个更聪明的解决方案?
由于