MonoTouch:每个进程iPad3上允许的内存是否比iPad2少?

MonoTouch:每个进程iPad3上允许的内存是否比iPad2少?,ipad,memory,xamarin.ios,Ipad,Memory,Xamarin.ios,我有一个在iPad2上运行正常的应用程序,在iPad3上它崩溃了,显然是因为内存不足错误。他们是否可能减少单个应用程序的使用量?如果是这样的话,monotouch是否有一个好方法可以在设备上跟踪这一点,以便我可以最好地调整所需的内容?我的猜测是,由于屏幕分辨率已更改,在渲染到屏幕或使用图像时,您将需要4倍的位 基本上有两种工具可以跟踪内存问题: 仪器。这是一个苹果工具/档案器,它可以做很多事情,其中包括它可以做内存分析。您可以从Xcode菜单Xcode->open Developer Tool-

我有一个在iPad2上运行正常的应用程序,在iPad3上它崩溃了,显然是因为内存不足错误。他们是否可能减少单个应用程序的使用量?如果是这样的话,monotouch是否有一个好方法可以在设备上跟踪这一点,以便我可以最好地调整所需的内容?

我的猜测是,由于屏幕分辨率已更改,在渲染到屏幕或使用图像时,您将需要4倍的位

基本上有两种工具可以跟踪内存问题:

仪器。这是一个苹果工具/档案器,它可以做很多事情,其中包括它可以做内存分析。您可以从Xcode菜单Xcode->open Developer Tool->Instruments打开它。 . 这是一个用于MonoTouch的内存档案器-您可以在MonoDevelop菜单项目->档案-Mono中访问它。如果问题是图像数据,则此工具不会直接显示它,因为它只跟踪托管对象,并且图像数据存储在相应的本地对等中,因此HeapShot探查器不会看到它。但是,您可以看到正在使用的图像数量,以及是否泄漏了其中的任何图像。
我的猜测是,由于屏幕分辨率发生了变化,在渲染到屏幕或使用图像时,您将需要4倍的比特数

基本上有两种工具可以跟踪内存问题:

仪器。这是一个苹果工具/档案器,它可以做很多事情,其中包括它可以做内存分析。您可以从Xcode菜单Xcode->open Developer Tool->Instruments打开它。 . 这是一个用于MonoTouch的内存档案器-您可以在MonoDevelop菜单项目->档案-Mono中访问它。如果问题是图像数据,则此工具不会直接显示它,因为它只跟踪托管对象,并且图像数据存储在相应的本地对等中,因此HeapShot探查器不会看到它。但是,您可以看到正在使用的图像数量,以及是否泄漏了其中的任何图像。
我知道一些仪器,只是不确定它是否能在单点触摸下工作。不过我会试试的。我的所有崩溃似乎都是在渲染视图时发生的,并且只有在向子视图添加项目时才会发生。在内存中创建它没有任何效果,所以这可能是原因。我很感激!另外,我的问题不是图像,而是当我渲染一堆标签来填充网格时,这就发生了。这就是问题所在。我在开始时将所有子视图添加到我的主视图中,这样即使不可见,它们也会呈现。更改了它,使它们只在需要时出现在主视图中,并且它修复了它!感谢againI,我知道仪器,只是不确定它是否在monoTouch中工作。不过我会试试的。我的所有崩溃似乎都是在渲染视图时发生的,并且只有在向子视图添加项目时才会发生。在内存中创建它没有任何效果,所以这可能是原因。我很感激!另外,我的问题不是图像,而是当我渲染一堆标签来填充网格时,这就发生了。这就是问题所在。我在开始时将所有子视图添加到我的主视图中,这样即使不可见,它们也会呈现。更改了它,使它们只在需要时出现在主视图中,并且它修复了它!感谢Againe在应用程序中呈现的每个标签都需要以CALayer的形式创建一些备份存储,该CALayer将数据保存到图像的RGB缓冲区。米格:这是一个很好的问题,但我担心的是,为什么ipad2能完美地工作,而ipad3的死灰复燃次数更多,却不能。如下图所示,这可能是因为我现在多次阅读的视网膜显示需要4倍的内存来处理一件事情?我在开始时将大约15个视图加载到内存中,其中5个视图具有我在搜索时手动构建的数据网格,因此我可以很容易地看出这是如何实现内存插入的。尽管我从未想到当iPad3拥有更多资源时,它会使iPad3崩溃,而不是iPad2崩溃。这是一个只显示的问题,这证明了创建视图的原因没有问题,但是如果我将它们添加到可见子视图中,它就会崩溃。我甚至把它分解成特定的项目,我从255像素宽的标签变成120像素宽的标签,这就解决了它。这当然是一个内存问题,但我只是不明白,在没有加载其他应用程序的情况下,iPad3怎么可能处理得比iPad2少。你在应用程序中呈现的每个标签都需要以CALayer的形式创建一些备份存储,将数据保存到图像的RGB缓冲区。米格:这是一个很好的问题,但我担心的是,为什么ipad2能完美地工作,而ipad3的死灰复燃次数更多,却不能。如下图所示,这可能是因为我现在多次阅读的视网膜显示需要4倍的内存来处理一件事情?我在开始时将大约15个视图加载到内存中,其中5个视图有我在搜索时手动构建的数据网格,所以我可以很容易地看到它们
这是记忆缺失。尽管我从未想到当iPad3拥有更多资源时,它会使iPad3崩溃,而不是iPad2崩溃。这是一个只显示的问题,这证明了创建视图的原因没有问题,但是如果我将它们添加到可见子视图中,它就会崩溃。我甚至把它分解成特定的项目,我从255像素宽的标签变成120像素宽的标签,这就解决了它。这当然是一个内存问题,但我只是不明白iPad3怎么可能处理得比iPad2少,这两者都没有加载其他应用程序。