gpt4 book ai didi

Racket Interactive 与编译性能

转载 作者:行者123 更新时间:2023-12-03 11:36:42 30 4
gpt4 key购买 nike

我是否编译 Racket 程序似乎对运行时性能没有影响。

通过编译改进的只是最初加载文件吗?换句话说,是否正在运行 racket src.rkt即时进行 jit 编译,这就是为什么我认为编译与交互式没有区别?

即使对于整数运算的紧密循环,我认为会发生一些差异,无论我以前是否做过 raco make,分析时间都是等效的。 .

我错过了一些简单的东西吗?

PS,我注意到我可以针对源文件( .rkt )或 .zo 运行 Racket 文件。 Racket 是否自动使用.zo如果找到一个对应于.rkt文件,或者 .zo文件需要显式使用吗?无论哪种方式,它对我看到的性能数字都没有影响。

最佳答案

你是对的。

Racket 分两个阶段编译代码:首先,代码被编译成字节码形式,然后在运行时被编译成机器码。编译文件时,您基本上是在创建字节码,以便稍后重新编译。由于这通常不会为小段代码花费大量时间,因此您不会在运行时看到任何明显的差异。举个极端的例子,你可以删除所有*.zo收集树中的文件并启动 DrRacket——由于有大量代码,启动需要很长时间,但是一旦启动,它几乎会像往常一样运行。 (点击“运行”也会很慢,因为这会重新加载并重新编译一些文件。)对于较大的代码片段的另一个问题是编译过程可能会使内存消耗更高,但这对于较小的代码片段也不是问题.

另见 Performace chapter在指南中获取有关如何提高性能的提示。

关于Racket Interactive 与编译性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10135327/

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