gpt4 book ai didi

ios - + [NSString stringWithContentsOfFile :] performance

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:05:05 24 4
gpt4 key购买 nike

我需要在 iOS 中加载文件,现在我使用 + [NSString stringWithContentsOfFile:]。这些文件大多是 500kb 到 5mb。我加载了大约。 4mb 大文件和仪器和秒表告诉我加载此文件需要 1.5 秒。在我看来它有点慢,有没有办法让字符串更快?

编辑:

我尝试了一些东西,现在注意到,创建 NSString 是我的问题,它占用了 97% 的时间,而不是从磁盘真正加载。

最佳答案

如果您知道编码或可以确定它(您现在使用的 API 是基本的),您可以将其视为 char 缓冲区(以编码感知的方式)。

我首先使用内存映射数据(mmap,您也可以使用 NSData)打开它。 madvise 可用于提示您将如何访问该文件。

如果内存映射 I/O 消耗太多内存供您使用,您应该下降到增量读取,例如 C I/O 工具 - fopenfread 等.. 这通常需要比内存映射数据更多的 I/O 事件(可能会慢得多,具体取决于访问数据的方式)。

在这两种情况下,您会将字符串视为 C 字符串——不要在打开时简单地将整个文件转换为 NSString

Foundation 有很多技巧,因此请确保这确实提高了您的特定用例的性能。

如果这些解决方案对您的使用而言过于“核心”,只需考虑使用较小的文件(分割现有文件)即可。

关于ios - + [NSString stringWithContentsOfFile :] performance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15388155/

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