shm: Копирование гигабайтами - это бред. Буфер больше 16Мб не имеет смысла делать. В теории для некоторых SSD может помочь распараллеливание: один поток пишет текущую порцию данных, а другой в это время уже считывает следующую.
Добавлено
По поводу отдельных операций я бы для начала сделал порционное чтение файла блоками. Внезапно, скорость может возрасти и тому есть объективные причины.
Добавлено
Можно отобразить файл на память, некоторые люди утверждаю, что для Винды это самый быстры способ прочитать все данные (не проверял).