2016-08-22 74 views
3

DrRacket我可以使用GUI设置内存限制。但是,我发现编辑不太好,并希望使用我选择的另一位编辑。但是,我如何指定内存限制呢?在球拍中指定内存限制

我能想到的两种可能性,但找不到任何有关这些事情:在代码调用的开始调用racket时(

  • 一些函数来设置内存限制
  • 不DrRacket GUI工具,但命令行上的REPL)给它一些参数来指定限制

回答

6

在代码的开始处,您可以设置模块的内存限制。 (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

+0

这两个答案都很好,但是,我会接受这个答案,因为我喜欢定义最大字节。非常可读。 – Zelphir

8

请参阅custodians

例如:

#lang racket 

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

(define x (make-bytes (* 4 1024 1024))) 

此代码的结果是 '出来的存储器'。