在Racket中指定内存限制

Zel*_*ahl 3 memory limit racket

DrRacket我可以使用GUI设置内存限制.但是,我发现编辑器不太好,并且想要使用我选择的另一个编辑器.但是,如何指定内存限制呢?

我可以想到两种可能性,但无法找到关于这两种可能性的任何内容:

  • 在代码的开头调用一些函数来设置内存限制
  • 在调用时racket(不是DrRacket GUI工具,但命令行上的REPL)给它一些参数来指定限制

小智 8

保管人.

例如:

#lang racket

;; Set limit
(custodian-limit-memory
   (current-custodian) (* 2 1024 1024))

(define x (make-bytes (* 4 1024 1024)))
Run Code Online (Sandbox Code Playgroud)

此代码的结果是"内存不足".


Ben*_*man 6

在代码的开头,您可以为模块设置内存限制.(文档)

#lang racket/base
(define MAX-BYTES 1000)
(custodian-limit-memory (current-custodian) MAX-BYTES)

....
Run Code Online (Sandbox Code Playgroud)

我不知道一个简单的命令行的解决方案,但你可以叫custodian-limit-memory你的racketrc文件设置为REPL的限制.

又见球拍/沙箱,尤其是call-with-limits.