gpt4 book ai didi

iphone - iOS开发: How can I tighten up my Core Data memory usage?

转载 作者:行者123 更新时间:2023-11-29 05:06:48 24 4
gpt4 key购买 nike

我对 Core Data 还很陌生,我仍在学习它的幕后工作原理。我的核心数据模型层次结构包含一个用户配置文件,其中包含一组使用一对多关系的十个不同级别,每个级别包含 30 个也使用一对多关系的不同谜题。

UserProfile (x1) -> Level (x10) -> Puzzle (x30), for a grand total of 311 objects per user profile

关卡和谜题模型用于存储用户按顺序解决谜题时的进度。当游戏第一次运行时,游戏会从 plist 中读取所有关卡和谜题数据,并生成核心数据对象(表行),这些对象将用于存储用户玩游戏时的进度。换句话说,核心数据对象列表不会随着用户玩游戏而增长,而是在开始时创建,并且对象的属性随着用户玩游戏而改变。我怀疑这是低效的,尽管我的问题仍然相同......

  1. 当我从 Core Data 加载用户配置文件时,是否还会将所有 10 个级别以及每个级别的 30 个谜题加载到内存中?我之所以这么问,是因为如果玩家一次只玩一个关卡,我显然不需要所有这些数据。
  2. 如果在加载用户配置文件时将所有关卡和谜题数据加载到内存中,我如何根据需要“延迟加载”关卡和谜题数据?
  3. 当我使用分配工具运行游戏时,它显示当应用程序完全加载并位于主菜单中时,它正在使用 6MB 的“总体”内存。显然,随着用户深入导航堆栈,内存使用量会增加。对于刚刚启动的应用程序来说,6MB 是否被认为是“很多”内存?
  4. 我注意到,当我注释掉从核心数据加载用户配置文件的代码行时,仍然使用 6MB。这是否意味着我的核心数据对象对内存的影响可以忽略不计?

如果这些问题太离谱,我深表歉意,我对它们的长度表示歉意,非常感谢您的智慧!我现在要返回核心数据文档,我只是想在继续自学的同时发布这些问题。

最佳答案

这回答了您的“延迟加载”问题。 Core Data to-many relationships. Are they Lazy Load?

除非您发现性能问题,否则我不会担心 6MB 内存。您可以随时使用附带的实用程序进行检查。

关于iphone - iOS开发: How can I tighten up my Core Data memory usage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4716384/

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