【发布时间】:2010-02-01 17:47:55
【问题描述】:
我编写了一个简单的 Cocoa 应用程序。在 Activity Monitor 中,显示它使用的虚拟内存比所有其他应用程序多得多:304.6MB。 (它从一开始就使用它,所以我认为这不是内存泄漏/管理问题)。 Firefox、Mail 等仅使用 30MB-60MB 左右。我的应用正在使用 13MB 的实际内存。
我正在使用垃圾收集。我链接到 AppKit.framework。 这是正常的还是我做错了什么?
【问题讨论】:
我编写了一个简单的 Cocoa 应用程序。在 Activity Monitor 中,显示它使用的虚拟内存比所有其他应用程序多得多:304.6MB。 (它从一开始就使用它,所以我认为这不是内存泄漏/管理问题)。 Firefox、Mail 等仅使用 30MB-60MB 左右。我的应用正在使用 13MB 的实际内存。
我正在使用垃圾收集。我链接到 AppKit.framework。 这是正常的还是我做错了什么?
【问题讨论】:
进程的“虚拟内存”统计数据会计算进程映射的所有内容。这包括任何共享库等(这些内存页面与其他进程共享)。要了解您的进程实际私下分配了多少内存,请查看“Real Private Memory”统计信息。
【讨论】:
不是。
每个垃圾收集应用程序在 VPRVT(活动监视器中的“虚拟内存”)和 VSIZE 列下都会获得非常大的数字。这是正常且无害的。您的应用程序的实际内存使用情况在“Real Memory”下。
请参阅 this post on cocoa-dev by Bill Bumgarner,他解释了为什么垃圾收集应用程序似乎使用这么多内存。
【讨论】: