我在F#中实现了LCS算法的顺序版本,并针对两个每个100,000个字符的字符串运行它。它一直需要大约490秒才能完成。我期待接近70秒的事情。
经过大量的故障排除后,我追踪到了我对自定义最大功能的使用 - 删除它将运行时间减少到42秒。
有人能告诉我为什么使用自定义最大功能会有如此巨大的性能影响吗?在这种情况下,使用自定义最大函数比使用 System.Math.Max Operators.max!
这是我正在使用的功能:
let max (a:int) (b:int) : int = if a > b then a else b