Узким местом должен быть не код, а доступ с жесткого диска, поэтому не должно иметь значения, какой язык вы используете. В зависимости от вашего опыта (и объема работы, которую вы хотите выполнить), вполне возможно, что сделать это в c # будет немного быстрее, чем сделать полностью в c ++. C # как язык не намного медленнее, чем c ++ (особенно потому, что в c ++ очень легко выстрелить себе в ногу), и вы получаете всю среду .net, которая имеет адекватные по производительности решения для большинства вещей (я думаю, что классы streamreader делают немного больше буферизации, чем вы автоматически получаете в c ++, что может существенно повлиять на производительность).
В целом это похоже на случай преждевременной оптимизации, которая, как мы знаем, является злом. Эта часть действительно чувствительна к производительности? Я думаю, нет (конечно, я могу ошибаться). Если это так, будет ли язык иметь значение? Вероятно, нет (сравните время, необходимое для выполнения написанных вами инструкций (некоторые арифметические, некоторые вызовы функций), чтобы прочитать файл (вероятно, измеренный в нано- или микросекундах) с временем поиска в миллисекундах вашего типичного жесткого диска. Если ваш код может сделать Разница в том, что это, скорее всего, только в шаблоне доступа и объеме буферизации. Например, может быть лучше сразу прочитать большие куски (даже если вам не нужны некоторые данные) в память сразу, если это сокращает количество обращений к чтению (и особенно ищет). Но снова сначала пишите очевидным способом и оптимизируйте только при необходимости