【问题标题】:Limiting Dr. Racket's memory限制 Racket 博士的记忆
【发布时间】:2015-03-21 11:42:50
【问题描述】:

一周前我增强了 Racket 博士的记忆,现在我想将其减少到与以前相同的数量。因此,我将其限制为 128 MB。但这没有任何效果...它总是消耗超过 128 MB...

这确实是个问题,因为它会导致我的计算机过热。 有人知道我可以如何限制 Dr. Racket 以使其不超过 128 MB?

这是问题的截图:

【问题讨论】:

    标签: memory limit racket


    【解决方案1】:

    程序使用的内存和 DrRacket 总使用的内存之间存在差异。当我启动 DrRacket 并且在进入或运行任何程序之前,我看到 DrRacket 使用 250MB。交互窗口显示我也将内存限制为 128MB,这意味着该特定程序不能超出这些范围,但 DrRacket 的某些功能在您的机器上使用的内存比我的要多。

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

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

    关于热量

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

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

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

    【讨论】:

    • 我检查了我的偏好,我猜想高内存使用是因为所有工具都是在 Racket 博士启动时启动的。我禁用了“Algol60”、“Macro Stepper”(从未使用过)、“如何设计程序”等,但我真的不知道他们在做什么。我搜索了文档,但他们没有解释每个工具在做什么。我会尽可能地禁用它,并且真的只尝试启用必要的东西,比如“检查语法”等等。
    【解决方案2】:

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

    实验:

    1. 选择球拍 |限制内存并指定 8 MB(最小值)。
    2. 选择文件 |新标签。
    3. 在“交互”窗格中分配 8 MB 内存。例如输入(define x (make-bytes (* 8 1024 1024)))。 (我建议将结果分配给一个变量,就像这样,因为我怀疑您是否希望 Dr Racket 打印 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 
    > 
    

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 这是真的,但是当我一周前在一个只有 128 MB 的项目上工作时,一切都很顺利,但后来我不小心将内存限制增加到了更多。后来我注意到在 Racket 博士的同一个项目中工作时,我的电脑过热(在增加内存限制之前我没有遇到这个问题)。所以我将内存限制降低到 128 MB,但这并没有帮助。因此,如果首先使用 128 MB 并且同一个项目没有过热,那么现在应该不会过热?
      • 它不会导致更多的磁盘使用。当您达到限制时,正在运行的程序将停止。
      猜你喜欢
      • 2018-11-07
      • 1970-01-01
      • 2023-03-26
      • 2015-07-21
      • 1970-01-01
      • 2014-11-25
      • 2017-01-22
      • 2018-05-05
      • 2013-07-17
      相关资源
      最近更新 更多