1

我正在开发一个由于内存使用过多而崩溃的应用程序。我想知道每个活动线程正在使用的内存量,以便我可以决定在屏幕元素中分配或绘制的哪些释放或从视图中删除。有没有办法获得它?

我曾尝试使用 mach.h 库,但mach_task_self()我只能访问整个应用程序使用的内存。

提前致谢

4

2 回答 2

3

我想你想要的是logMemUsage()

您可以查看此问题的答案Watching memory usage in iOS

我想你也可以从这个文档中得到一些东西: Understanding and Analyzing iOS Application Crash Reports

如果要在应用程序运行时检查内存使用情况,请使用 Instruments。:

使用Instruments您可以检查您的应用程序正在使用多少内存。在Xcode4中,使用 ' Profile' build,选择Leaks,然后单击工具栏中的Library按钮并添加Memory Monitor instrument.

如果您真的不想使用 Instruments,那么您可以使用自定义类UIDeviceAdditions获取当前内存使用情况

希望够了。

于 2013-01-11T12:57:03.663 回答
1

你不能因为线程共享堆。线程使用512KB 堆栈空间创建,并根据需要分配内存页面。除此之外,没有存储在任何地方的每个线程值的内存。

于 2013-01-11T14:56:24.030 回答