gpt4 book ai didi

iOS : NSFileManager copyItemAtPath is memory intensive

转载 作者:行者123 更新时间:2023-11-28 17:54:31 31 4
gpt4 key购买 nike

我有一个应用程序,它必须将一堆文件从一个磁盘复制到另一个磁盘。这些文件是高清原始图像,所以它们很大。我不怀疑 NSFileManager copyItemAtPath: 方法实际上会加载内存中的内容以将其复制到目标路径。

我不得不将此复制任务排入队列中,最大并发操作数为 4,以避免破坏我的传输内存配额并避免崩溃,但结果是,我必须等待 1 分钟才能完成所有文件的复制 ...

他们是否是一种更有效的方式来将文件从一个路径克隆到另一个路径而无需将内容加载到内存中?

这是使用仪器进行分析时发生的事情的快照:

enter image description here

蓝色:总生活分配

粉红色:NSFileManager copyItemAtPath:对内存的影响。

http://s9.postimg.org/io3654ty7/Screen_Shot_2013_06_18_at_12_43_03_PM.png

最佳答案

类似于注释,但使用 fopen、fread、fwrite,因为它们会为您处理缓冲。还有一点非常重要——你应该在读写文件描述符上都设置 F_NOCACHE flat,否则你会大大增加专用于磁盘缓存的系统内存,如果太大可能会让你丧命。如果您在此处搜索文件副本和标志,您肯定会在 unix 或 C 标记项中找到执行此操作的代码。

关于iOS : NSFileManager copyItemAtPath is memory intensive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17174565/

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