Я полагаю, мне нужны дополнительные советы по SSD, SATA, ограничениям входов / выходов и т.д.
Я программирую видеоинсталляцию, где я постоянно читаю и пишу довольно много данных:
На первый SSD, диск A, я записываю 50 кадров в секунду (= 50 файлов в секунду) и одновременно читаю некоторые другие 50 кадров в секунду (с того же диска!). Со второго SSD, диска B, я считываю дополнительные 50 кадров в секунду.
Вопрос: где горлышко бутылки? Я успешно запускаю свою программу со скоростью 25 кадров в секунду, но не быстрее (и мне нужно было бы довести ее до 50 кадров в секунду).
Общий объем данных на самом деле не такой уж избыточный: каждый кадр занимает 1,8 МБ, поэтому каждый поток составляет около 90 МБ / с, что сводится к 180 МБ / с чтения плюс еще 90 МБ / с записи = 270 МБ / Общая передача данных в 150 операций чтения / записи в секунду.
Больше всего меня смущает следующее:
- Когда я запускаю патч с двух отдельных SSD, я получаю ту же производительность, что и при запуске всех трех потоков из одного без использования второго SSD.
- Скорость существенно не увеличится, если я уменьшу один или два из этих потоков (и уменьшу размер файла до 260 КБ / файл, что составляет всего 13 МБ / с на поток).
- Однако он увеличивается (до 40-60 кадров в секунду), если я переключаю все три потока на 260 КБ / файл.
Это заставляет меня задуматься о том, что происходит ... это диски? Это SATA? Или что-то еще, о чем я, возможно, даже не слышал? И что я могу с этим поделать?
Я использую Macbook Pro (Retina, начало 2013 г., i7 2,6 ГГц, 16 ГБ ОЗУ, ОС 10.9.2), диск A - это твердотельный накопитель Samsung 840 pro 256 ГБ, подключенный через Thunderbolt, диск B - внутренний накопитель MacBook SSD MacBook 512 ГБ (встроенный от Apple).
Моя программа построена на MAX/MSP, и я использую произвольный, несжатый формат двоичных данных (.jxf). Я могу исключить проблемы загрузки CPU /GPU.