У меня есть «огромное» количество данных, которое может варьироваться от 50 до 100 мегабайт. Я читал эти данные в виде массива байтов с помощью фильтра filestreamer.Преобразование массива из двух последовательных байтов в целые числа быстрее
Дело в том, что я хочу преобразовать все последовательные 2 байта в целое число. То, как я это сделать, я Переберите массив байтов с двух размер шага, а затем использовать BitConvert сделать преобразование:
_data[i] = BitConverter.ToInt16(soundData[i : i + 2], 0) // Convert 2 bytes into an int and store at i
Так каждые два байта заводятся в Int16. Проблема в том, что это слишком медленно, так как для файла размером около 50 мегабайт это может занять до 20 секунд!
Есть ли общий способ сделать это мгновенно, вместо того, чтобы называть эту функцию на каждые 2 байта моего массива данных таким образом, что это не так медленно? Предпочтительно «безопасным» способом, поэтому небезопасный код.
"Fast"? "Моно"? http://www.mono-project.com/Interop_with_Native_Libraries – paulsm4
Вся суть * потока * заключается в обработке данных при загрузке, а не в загрузке, а затем в повторении. Действительно ли конверсия является узким местом? Не могли бы вы включить цикл в свой вопрос? – Adam