gpt4 book ai didi

ios - Objective-C 内存使用

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:03:42 25 4
gpt4 key购买 nike

我一定遗漏了一些明显的东西,但是为什么下面这个创建 1000 个 1MB 数据对象并将它们存储在数组中的非常简单的应用程序确实可以工作并且似乎没有饱和(应用程序的内存占用显示为 1.7MB在 Xcode 中)? 此代码已在 1GB 内存的 iPad 2 上进行测试,不会崩溃。

@implementation AppDelegate {
NSMutableArray* datas;
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
datas = [NSMutableArray new];
for (int i = 0; i < 1024; i++) {
[datas addObject:[NSMutableData dataWithLength:1024*1024]];
}
return YES;
}

@end

我想真正的问题是一些分配是否实际上是在 iPad 闪存(而不是 RAM)上完成的,是否有人对此有更多详细信息?

最佳答案

Apple 一直对 iPhone Simulator 做出以下声明:

Important: The simulator is great for debugging, but the ultimate arbiter of what will and won't work on iOS is a real device. It is especially important to keep this in mind when doing performance testing and debugging.

根据 Apple Memory Usage Performance Guidelines :

If you do not plan to use a particular block of memory right away, deferring the allocation until the time when you actually need it is the best course of action. For example, to avoid the appearance of your app launching slowly, minimize the amount of memory you allocate at launch time.

所以我不确定这是否只是一个练习,看看您可以分配多少内存。但是如果它是 future 应用程序的原型(prototype),我会改变你的应用程序的结构,只在你需要的时候加载你需要显示的信息。请记住,所有数据都保存在固态设备上。您不会像使用标准主轴硬盘驱动器那样受到性能影响。

关于ios - Objective-C 内存使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26126752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com