gpt4 book ai didi

functional-programming - 函数式编程的开销

转载 作者:行者123 更新时间:2023-11-29 08:19:31 25 4
gpt4 key购买 nike

Rust by Example #36 , 以命令式和函数式两种方式计算不超过一个限制的奇数之和。

我将这两个分开并将上限增加到 10000000000000000 并对结果进行计时:

祈使式:

me.home:rust_by_example>time ./36_higher_order_functions_a
Find the sum of all the squared odd numbers under 10000000000000000
imperative style: 333960700851149440

real 0m2.396s
user 0m2.387s
sys 0m0.009s

函数式风格:

me.home:rust_by_example>time ./36_higher_order_functions_b
Find the sum of all the squared odd numbers under 10000000000000000
functional style: 333960700851149440

real 0m5.192s
user 0m5.188s
sys 0m0.003s

功能版本运行速度较慢,编译时间也稍长。

我的问题是,是什么导致功能版本变慢?这是函数式风格固有的,还是由于编译器没有尽可能地优化?

最佳答案

what causes the functional version to be slower? Is this inherent to the functional style or is it due to the compiler not optimising as well as it could?

通常,作为代码生成的一部分,编译器会将更高级别/更短的功能版本转换为命令式编码。它还可以应用提高性能的优化。

如果编译器优化不佳或代码生成器不佳,功能代码可能比手动编写的版本更差。

这真的取决于编译器。从启用优化开始。

关于functional-programming - 函数式编程的开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25629356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com