在Mac OS X下将顺序数据写入磁盘的最快方法是什么?

Tho*_*ing 6 c io macos cocoa objective-c

我需要一种以高速率(~200-300Mbit/s)存储大数据块(~1~2MB)的方法.
经过一些研究,我发现了几个选择:

  • aio_write
  • DIRECT_IO
  • 碳文件管理器 PBWriteForkAsync()
  • 默认情况下fwrite(),包含在块中并通过GCD分派
  • NSData appendData在NSOperation中
  • ...

这个wiki页面描述了aio_writeLinux下的状态.我没有找到的是关于aio_writeMac OS X 状态的类似页面.

NSOperation或Blocks + GCD似乎是一种实现非阻塞IO的技术.它用于几个开源IO库(例如https://github.com/mikeash/MAAsyncIO)

有类似问题的人找到了合适的解决方案吗?
目前我倾向于PBWriteForkAsync采用一些"调整"参数.它也应该是64位安全的.

Gio*_*hal 2

我不太了解 MacOS,但我也会尝试使用非阻塞选项open进行write系统调用。参考unistd.hO_NONBLOCK