gpt4 book ai didi

iphone - 我应该使用 Core Data 还是 SQLite 来表示具有加权边的图结构?

转载 作者:行者123 更新时间:2023-12-03 21:22:15 25 4
gpt4 key购买 nike

我正在构建一个 iPhone 应用程序,该应用程序将使用加权图(大概有 1000 个节点和 500-700 个关系,大致估计可能是完全错误的)。

核心数据会很棒,因为它易于使用并且针对 iPhone 进行了优化。同时,需要对图节点进行加权。我可以在核心数据中添加一定程度的间接性(编辑/澄清:我会将加权边缘表示为关系。),但我觉得这可能会破坏性能提高的目的。

SQLite 将使我能够在没有任何额外间接的情况下做到这一点,问题就变成了性能。

另一个考虑因素是,我使用核心数据来存储内容,然后仅将权重存储在表中的 sqlite 中,并构建自定义核心数据对象,当我获取或创建时,会在 sqlite 中创建必要的链接,然后仅使用 sqlite 进行计算(因为计算只会遍历并查看权重,所以除了对象的最终结果/id 之外我不需要任何东西)。然后我会在核心数据中查找实际对象。

此外,还会有一个服务器将所有用户图表考虑到一个更大的图表中。因此,直接使用 sqlite 可能会更容易,因为在野兽服务器上复制信息会更容易:-)

感谢您的帮助。

最佳答案

乍一看,Core Data 非常适合您的用例,因为它是一个对象图管理框架(具有持久性)。它的延迟加载和缓存功能允许您将部分图形加载到内存中,如果您有一个大图形,这通常是需要的。

核心数据似乎不支持开箱即用的加权关系(我根本不是核心数据专家)。如果“一定程度的间接”意味着表示关系的核心数据对象,我同意这会对性能造成影响。

出于性能和可移植性考虑,直接 SQLite 可能是更好的选择,因为您可以完全控制架构和索引。

我投票支持你的“仅将权重存储在 sqlite 中”的想法。据我了解,这使您可以利用核心数据功能,同时保持性能关键任务的高效。

NetNewsWire 的作者撰写了一篇博客文章,解释了他为何放弃 Core Data(主要是因为性能和灵 active 原因),这可能对您有所帮助。 http://inessential.com/2010/02/26/on_switching_away_from_core_data

关于iphone - 我应该使用 Core Data 还是 SQLite 来表示具有加权边的图结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3589194/

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