是否应该使用外部文件存储大数据?

时间:2019-05-08 06:30:31

标签: swift performance data-storage

我正在制作一个使用许多预定义的大文本的应用程序。目前,我将它们存储在RTF文件中,然后从那里加载它们以将代码与内容分开。如果rtf文件大约有1500-2000行,并且在应用启动时被加载并拆分了几次,那么该应用是否需要很长时间加载,我是否应该在源代码中定义内容?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我绝对不会在源代码本身中放置2000行以上的文本。单独的文件(或数据库或其他文件)更有意义。

关于应用是否需要大量时间来加载它,您应该对其进行基准测试(例如,将let start = CFAbsoluteTimeGetCurrent()放在加载之前,然后将let elapsed = CFAbsoluteTimeGetCurrent() - start放在加载之后,看看它需要多长时间。

顺便说一句,如果是iOS,请确保在实际设备上执行此操作,而不是在模拟器上进行操作,以获取准确的时间。但是通常情况下,加载这样的小文件对于所需的时间来说是无关紧要的(例如,它可能仍会比许多图片小)。

我刚刚测试了加载一个标记很重的rtf(每个词都使用不同的颜色),它的大小为250kb。使用带有文件URL的NSAttributedString初始化程序,虽然它比纯文本文件(相同的文本,没有标记)要慢一个数量级,但在我的iPhone上仍然只花了70毫秒。但显然,您应该对自己的文件进行基准测试。