Memory 限制Dr.Racket';记忆

Memory 限制Dr.Racket';记忆,memory,limit,racket,Memory,Limit,Racket,一周前我增强了Racket博士的记忆,现在我想把它减少到和以前一样的数量。所以我把它限制回128MB。但那没有效果。。。它总是消耗超过128 MB的内存 这真是个问题,因为它会导致我的电脑过热。 有人知道我如何限制Racket博士,使他不超过128MB吗 以下是问题的屏幕截图: 我不认为消耗的额外内存是导致计算机过热的原因。更有可能的是,这是因为某些函数正在消耗CPU。相反,请尝试优化代码 事实上,通过限制可用内存,最终可能会导致更多内存,从而降低速度,并可能消耗更多CPU…并导致更多过热。程序

一周前我增强了Racket博士的记忆,现在我想把它减少到和以前一样的数量。所以我把它限制回128MB。但那没有效果。。。它总是消耗超过128 MB的内存

这真是个问题,因为它会导致我的电脑过热。 有人知道我如何限制Racket博士,使他不超过128MB吗

以下是问题的屏幕截图:


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


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

程序使用的内存与DrRacket使用的内存总量之间存在差异。当我启动DrRacket时,在进入或运行任何程序之前,我看到DrRacket使用250MB。交互窗口声明我也将内存限制在128MB,这意味着特定的程序无法超出这些限制,但DrRacket的一些功能在您的机器上使用的内存比我的多得多

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

对于一个特殊的复杂程序,我想后台扩展可能会占用大量内存。也许你也可以关闭它,看看当前使用的内存是否下降

关于热量的问题

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

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


如果你在计算一些东西,CPU的增加是自然的。这是为了让你早点得到答案。可以更改计算机设置以缩短电池时间。检查操作系统和BIOS。(这使得这不是球拍问题)

Dr球拍状态栏中显示的内存为N/a

实验:

  • 选择Racket |限制内存并指定8MB(最小值)
  • 选择文件|新建选项卡
  • 在交互窗格中,分配8MB内存。例如,输入
    (定义x(生成字节(*8 1024))
    。(我建议将结果分配给这样的变量,因为我怀疑您是否希望Dr Racket打印8MB字节。)
  • 我得到的结果是:

    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 
    > 
    

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

    没错,但当我一周前在一个只有128 MB的项目上工作时,一切都很顺利,但后来我意外地将内存限制扩大到了更多。后来我注意到,在Dr Racket的同一个项目中工作时,我的计算机过热(在增加内存限制之前,我没有遇到过这个问题)。因此,我将内存限制降低到128MB,但这没有帮助。因此,如果第一次使用128MB,并且同一个项目没有过热,那么现在就不应该过热了?这不会导致更多的磁盘使用。当您达到限制时,运行的程序将停止。我检查了我的首选项,我猜内存使用率高是因为所有工具都是在Dr Racket启动时启动的。我禁用了“Algol60”、“宏步进器”(从未使用过)、“如何设计程序”等等,但我真的不知道它们在做什么。我搜索了文档,但他们没有解释每个工具都在做什么。我将尽可能多地禁用,真正尝试只启用必要的东西,如“检查语法”等等。