【问题标题】:Can I snapshot and restore memory of Objective-C object graph?我可以快照和恢复 Objective-C 对象图的内存吗?
【发布时间】:2012-06-23 06:15:10
【问题描述】:

我正在设计一个对象持久代码。 IMO,内存快照在一些限制内是最快、可靠和紧凑的持久方法。

使用 C 结构很容易。我可以手动布局所有对象的内存布局。我可以将所有引用保存为对象集合的索引。所以引用不是问题。

无论如何,我想用 Objective-C 对象来试试这个。为此,对象必须位于内存的特定位置。所以,如果我可以指定分配的内存位置,我可以对内存进行快照。并且在恢复的时候,我可以得到一个特定地址的对象。

当然,所有这些都是特定于机器的,需要很多技巧,但这对我来说很好。 唯一的问题是我不知道如何指定新的 Objective-C 对象的位置。我该怎么做?

【问题讨论】:

    标签: objective-c memory snapshot


    【解决方案1】:

    通常人们使用NSCodingNSKeyedArchiver(或其一些自定义子类)。我认为您的 C 方法在 64 位运行时之前可以工作,因为对象的数据部分是使用结构实现的,但我认为新运行时使用非脆弱实例变量会使事情复杂化。无论如何,加载持久对象的程序仍然需要为它们定义类,要么是硬编码的,要么是通过包加载的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-12
      • 1970-01-01
      • 2021-04-23
      • 1970-01-01
      • 2021-05-19
      • 1970-01-01
      相关资源
      最近更新 更多