我正在编写一个应用程序,用于在 iPhone 上缓存来自网络的流媒体内容。现在,我正在将数据到达时保存到磁盘( block 大小从 1KB 到大约 60KB),但应用程序响应有点迟缓(比我预期的要好,但仍然很糟糕)。
我的问题是:是否有人对设备内存的写入频率和写入量应达到多少才能最大限度地提高性能有经验法则?
我意识到这似乎是特定于应用程序的,我打算针对我的场景进行性能调整,但这通常适用于 iPhone 上下载大量数据的任何应用程序,因为可能存在一个最佳点(假设有足够的传入数据可用性) )用于写入频率/大小。
这些是我已经阅读过的与该问题相关的资源,但没有人解决转储之前要积累多少数据的具体问题:
Best way to download large files from web to iPhone for writing to disk
The Joy in Discovering You are an Idiot
最佳答案
一年后,我终于开始编写一个测试工具来测试流下载的分块性能。
设置如下:使用 iPhone 4 通过 Wi-Fi 连接*通过异步 NSURLConnection
下载大文件。当下载的数据量超过阈值时,定期将下载的数据刷新到磁盘(自动)。
结果:没有什么区别。使用 32kB 和 512kB block (以及中间的几种大小)之间的性能差异小于使用相同分块大小的运行之间的差异。正如预期的那样,文件下载时间几乎全部由等待网络的时间组成。
*平均吞吐量约为 8Mbps。
关于iphone - 在 iPhone 上将流媒体内容写入磁盘的理想 block 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2398406/