Каков самый быстрый способ записи последовательных данных на диск в Mac OS X?

Мне нужен способ хранить большие фрагменты данных (~ 1-2 МБ) с высокой скоростью (~ 200-300 Мбит / с).
После некоторого исследования я нашел несколько вариантов:

  • aio_write
  • Direct_IO
  • Carbon File Manager PBWriteForkAsync ()
  • по умолчанию fwrite () , заключенный в блок и отправленный через GCD
  • NSData appendData в NSOperation
  • ...

Эта вики-страница описывает состояние aio_write под Linux. Чего я не нашел, так это аналогичной страницы о состоянии aio_write для Mac OS X.

NSOperation или Blocks + GCD, похоже, являются методом для достижения неблокирующего ввода-вывода. Он используется в нескольких библиотеках ввода-вывода с открытым исходным кодом (например, https://github.com/mikeash/MAAsyncIO )

Кто-нибудь с подобной проблемой нашел подходящее решение?
В настоящее время я предпочитаю PBWriteForkAsync , поскольку для этого требуются некоторые параметры «настройки». Он также должен быть 64-битным.

6
задан Thomas Zoechling 16 June 2011 в 17:48
поделиться