Используете ли вы данные последовательно или методом произвольного доступа? Если это произвольный доступ, то может быть быстрее загрузить его в память, так как вам не нужно будет перемещать указатель файла. Было бы большим штрафом, если бы вам нужно было выделить память для выполнения операций над данными на каждой итерации, но без дополнительной информации я не смог бы сказать, что это было.
Если вы обращаетесь к данным поочередно, то между этими двумя методами нет разницы в «big-o». Это полностью зависит от операционной системы и физической архитектуры. На хорошей ОС с хорошим кешированием файловой системы оба метода должны быть схожими, с преимуществом по скорости - кешированием в списке массивов и преимуществом с пространством при чтении из файла, так как вам не нужно постоянно распределять память.
Мой лучший совет - реализовать оба метода на вашей целевой ОС и ЦП. Из-за разницы порядка скоростей между скоростью обработки ЦП, кэшем памяти ЦП, оперативной памятью и доступом к диску очень сложно предсказать производительность на современных архитектурах, когда у вас есть два алгоритма с одинаковым big-o.