菜鸟教程小白 发表于 2022-12-12 17:00:51

iphone - 在 iOS 中高效存储大量数据


                                            <p><p>我正在构建一个具有“记录”功能的应用程序,该功能可以记录用户随时间的交互。随着时间的推移,我用表示用户输入当前状态的“状态”对象填充内存中的一个数组。一个典型的记录会产生大约 5k 个这样的对象。</p>

<p>然后我使用 <code>NSKeyedArchiver archiveRootObject:toFile:</code> 归档这些数据。这工作正常,但是文件大小非常大(3.5 兆左右)。我的问题是这样的:</p>

<p>归档文件是否存在任何固有的文件大小开销?如果我使用 SQLite,甚至滚动我自己的文件格式,我是否能够使用更少的磁盘空间来保存这些数据?或者减少数据磁盘大小的唯一方法是减少我存储的数字的位深度?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>如果您关心的是性能,Core Data 会为您提供更多的粒度。您可以在应用程序执行期间延迟加载和保存部分,而不是加载/保存整个 3.5Mb 对象图。 </p>

<p>如果您关心文件大小,这是 <a href="http://opensource.apple.com/source/CF/CF-550/CFBinaryPList.c" rel="noreferrer noopener nofollow">binary plist format</a> ,这是 <a href="http://www.sqlite.org/fileformat2.html" rel="noreferrer noopener nofollow">SQLite file format</a> .但比开销更重要的是对象图和核心数据模型之间的转换有多复杂。 </p>

<p>您可能还对以下几种文件格式的速度和性能比较感兴趣:<a href="https://github.com/eishay/jvm-serializers/wiki/" rel="noreferrer noopener nofollow">https://github.com/eishay/jvm-serializers/wiki/</a>不确定是否所有内容都有 C、C++ 或 Objective-C 实现。</p></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - 在 iOS 中高效存储大量数据,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/7027040/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/7027040/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - 在 iOS 中高效存储大量数据