我在一周前增加了Dr. Racket的记忆,现在我想将它减少到与以前相同的数量。所以我把它限制在128 MB。但这没有任何影响......它总是消耗128 MB以上......
这确实是一个问题,因为它导致我的电脑过热。 有人知道我如何限制Dr.Ratet博士,以便他不超过128 MB?
以下是该问题的屏幕截图:
答案 0 :(得分:6)
程序使用的内存与DrRacket总共使用的内存之间存在差异。当我启动DrRacket并在进入或运行任何程序之前,我发现DrRacket使用250MB。交互窗口表明我的内存有限,只有128MB,这意味着那个特定的程序不能超过那些边界,但是DrRacket的功能在你的机器上使用了比我的更多的内存。
我进入设置并删除了一些我不使用的功能(如Algiol60)。在重新启动之后,我使用了50MB的内存,这确实证实了DrRacket使用的内存而不是程序。
对于特定的复杂程序,我猜测后台扩展可能会占用大量内存。也许您也可以将其关闭以查看当前使用的内存是否已关闭。
关于加热
正如Óscar所说,只要你没有听到交换正在使用(大量磁盘使用),内存使用与热量关系不大。热量与CPU使用率有关。在进行计算时,操作系统将提供可用的资源,并可能增加CPU的频率,从而增加热量。
如果您正在创建一个具有循环等待任务的线程应用程序,请确保您没有进行活动循环。睡眠可能会降低活跃度,也许Racket有更好的方法(从未在Racket中完成线程化应用)
如果你在计算某些东西,那么CPU的增加是很自然的。这样你就可以早点得到答案。可以更改计算机设置以支持电池使用时间。检查操作系统和BIOS。 (这使得这不是一个球拍问题)
答案 1 :(得分:3)
Dr Racket状态栏中显示的内存为N / A.
实验:
(define x (make-bytes (* 8 1024 1024)))
。 (我建议将结果分配给变量,就像这样,因为我怀疑你想要Dret博士打印8 MB的字节。)我得到的结果:
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 ......并导致更多过热。