【发布时间】:2016-07-20 09:12:36
【问题描述】:
我编写了一个处理文件的程序。在空闲状态下,进程占用的内存约为 60 MB。定期,比如每 2 分钟,该进程分配内存(约 40 MB),对文件执行一些操作,然后释放分配的内存。该过程大约需要 10 到 20 秒。结果,我的进程的内存使用情况如下图所示:
我的问题是:我应该提前保留一些内存,然后在需要时使用这些内存吗?这将使内存使用趋势更加稳定。 而且系统稳定性会更好,对吗?
【问题讨论】:
-
只是出于好奇:您为什么担心内存使用趋势?
-
分配和释放大约 40MB 的 RAM 的时间最多不太可能超过几毫秒,并且可能不会显着提高您的性能。您希望通过这样做实现什么目标?
-
@tobi303 我的意思是内存使用脉冲对操作系统有好处吗?
-
@Rotem 首先我分配内存(~40 MB)并将内存用作处理文件的缓冲区。完成处理文件通常需要约 20 秒(或更长时间)。
-
通常您在代码中分配的内存与您在任务管理器中看到的内存使用量并不直接对应。实际上,我对这些扭结感到有些惊讶。也可能是操作系统仅在您的程序完成时才释放内存。我不会过多关注您在任务管理器中看到的内容,但如果您真的想研究程序的内存使用情况,您可以使用其他诊断工具。
标签: c++ windows memory memory-management