【发布时间】:2014-03-12 09:03:35
【问题描述】:
我有一个具有 300MB 可用物理内存和 6 个 .NET 进程的系统。当资源可用时,它们中的每一个都可以从空闲的 100MB 跃升至压力的 500MB。我知道必须增加系统规格,但我想知道 GC 是否会尝试更频繁地收集内存并尝试使进程内存分配尽可能小? GC 频率是否取决于可用的系统内存?
我使用的是 2.0 运行时。
【问题讨论】:
-
GC 只消耗 virtual 内存,无论机器安装了多少物理 RAM,它总是至少有 2 GB 可用。 非常不太可能是 300MB,这不是您可以从 RAM 芯片供应商处购买的数量。为进程提供 RAM 是操作系统的工作,.NET 与它没有任何关系。
-
我没有说我安装了 300MB 内存但可用。 SQL、JVM 和其他服务安装了 8GB 空间,剩下 300MB 给我的进程。 IDLE 中的每个都大约 100MB,但在压力下,如果有足够的资源,它们会膨胀到 500MB。
标签: .net garbage-collection clr