【发布时间】:2020-06-09 22:20:57
【问题描述】:
这是一个关于编程语言是否记住/存储函数调用的输出的一般问题。
假设我需要计算一个数量X,这取决于一些更简单的计算。比方说
X=sin(t)+cos(t)+(cos(t)-sin(t))^2.
天真地,我可以像上面那样计算X,调用sin(t) 两次,cos(t) 两次。
或者我可以打电话给sin(t) 和cos(t) 一次:
a=sin(t)
b=cos(t)
然后做
X=a+b+(b-a)^2
直觉上,第二种方法应该快两倍吧?所有编程语言都是这样吗?
我问是因为,在 Julia 中进行这样的计算时,我注意到计算更简单的数量一次而不是在它们出现在 X 的表达式中的每个点调用它们并不会改变运行时间。
【问题讨论】:
-
谷歌搜索“纯”函数。
-
请注意,您可以使用 Memoize.jl 实现这一目标
标签: performance memory julia