在DrRacket
我可以使用GUI设置内存限制。但是,我发现编辑不太好,并希望使用我选择的另一位编辑。但是,我如何指定内存限制呢?在球拍中指定内存限制
我能想到的两种可能性,但找不到任何有关这些事情:在代码调用的开始调用racket
时(
- 一些函数来设置内存限制
- 不DrRacket GUI工具,但命令行上的REPL)给它一些参数来指定限制
在DrRacket
我可以使用GUI设置内存限制。但是,我发现编辑不太好,并希望使用我选择的另一位编辑。但是,我如何指定内存限制呢?在球拍中指定内存限制
我能想到的两种可能性,但找不到任何有关这些事情:在代码调用的开始调用racket
时(
在代码的开始处,您可以设置模块的内存限制。 (docs)
#lang racket/base
(define MAX-BYTES 1000)
(custodian-limit-memory (current-custodian) MAX-BYTES)
....
我不知道一个简单的命令行的解决方案,但你可以在你的racketrc文件设置为REPL限制呼叫custodian-limit-memory
。
另请参阅racket/sandbox,特别是call-with-limits
。
请参阅custodians。
例如:
#lang racket
;; Set limit
(custodian-limit-memory
(current-custodian) (* 2 1024 1024))
(define x (make-bytes (* 4 1024 1024)))
此代码的结果是 '出来的存储器'。
这两个答案都很好,但是,我会接受这个答案,因为我喜欢定义最大字节。非常可读。 – Zelphir