A
Что в деталях скрывается за "streamReader.ReadLine()" я не знаю, но я бы полез узнать. Вряд ли, конечно, он обращается к файлу построчно, но всё равно это первое что я бы копал. Возможно читал более крупными чанками (это банально зависит от ssd/nvme ssd/hdd).
Если говорить про CPU оптимизации, их нужно максимально изолировать от остального окружения. Банально выключить видео в youtube)) Ну и конечно прогонять тесты на уже загруженных данных. Тогда будет понятно, что меряем и что нужно оптимизировать. А вот дальше уже начинается самое интересное) Но все cpu-side оптимизации могут про сильно пролететь по сравнению с одной оптимизацией чтения.
Будет время может помогу с более дельными советами.