限制Dr. Racket的记忆力

时间:2015-03-21 11:42:50

标签: memory limit racket

我在一周前增加了Dr. Racket的记忆,现在我想将它减少到与以前相同的数量。所以我把它限制在128 MB。但这没有任何影响......它总是消耗128 MB以上......

这确实是一个问题,因为它导致我的电脑过热。 有人知道我如何限制Dr.Ratet博士,以便他不超过128 MB?

以下是该问题的屏幕截图:

enter image description here

3 个答案:

答案 0 :(得分:6)

程序使用的内存与DrRacket总共使用的内存之间存在差异。当我启动DrRacket并在进入或运行任何程序之前,我发现DrRacket使用250MB。交互窗口表明我的内存有限,只有128MB,这意味着那个特定的程序不能超过那些边界,但是DrRacket的功能在你的机器上使用了比我的更多的内存。

我进入设置并删除了一些我不使用的功能(如Algiol60)。在重新启动之后,我使用了50MB的内存,这确实证实了DrRacket使用的内存而不是程序。

对于特定的复杂程序,我猜测后台扩展可能会占用大量内存。也许您也可以将其关闭以查看当前使用的内存是否已关闭。

关于加热

正如Óscar所说,只要你没有听到交换正在使用(大量磁盘使用),内存使用与热量关系不大。热量与CPU使用率有关。在进行计算时,操作系统将提供可用的资源,并可能增加CPU的频率,从而增加热量。

如果您正在创建一个具有循环等待任务的线程应用程序,请确保您没有进行活动循环。睡眠可能会降低活跃度,也许Racket有更好的方法(从未在Racket中完成线程化应用)

如果你在计算某些东西,那么CPU的增加是很自然的。这样你就可以早点得到答案。可以更改计算机设置以支持电池使用时间。检查操作系统和BIOS。 (这使得这不是一个球拍问题)

答案 1 :(得分:3)

Dr Racket状态栏中显示的内存为N / A.

实验:

  1. 选择球拍|限制内存并指定8 MB(最小值)。
  2. 选择文件|新标签。
  3. 在“交互”窗格中分配8 MB内存。例如,输入(define x (make-bytes (* 8 1024 1024)))。 (我建议将结果分配给变量,就像这样,因为我怀疑你想要Dret博士打印8 MB的字节。)
  4. 我得到的结果:

    Welcome to DrRacket, version 6.1.1.6--2014-12-21(aabe9d7/a) [3m].
    Language: racket [custom]; memory limit: 8 MB.
    > (define x (make-bytes (* 8 1024 1024)))
    out of memory 
    > 
    

    假设您得到相同的结果,还有一些其他原因导致您的计算机运行得更热。

答案 2 :(得分:2)

我不认为消耗的额外内存是导致计算机过热的原因。更有可能的是,因为某些功能正在消耗CPU。请尝试优化代码。

事实上,通过限制可用内存,最终可能导致更多disk paging,从而降低速度并可能消耗更多CPU ......并导致更多过热。