Все это основано на операционной системе и выборе стандартных библиотек C и C ++.
Дни медленного ifstream в значительной степени прошли, однако, вероятно, есть некоторые издержки при обработке универсальных интерфейсов C ++.
atof / strtod может быть самым быстрым способом справиться с этим, если строка уже находится в памяти.
Наконец, любая попытка получить файл для чтения в память, скорее всего,быть бесполезнымСовременные операционные системы обычно мешают (особенно, если файл больше, чем RAM, вы в конечном итоге меняете код, поскольку система будет обрабатывать ваши (уже хранящиеся на диске) данные как заменяемые).
Если вам действительно нужнобыть смехотворно быстрым (единственные места, которые, я думаю, будет полезны, это подходы на основе HPC и Map / Reduce) - попробуйте mmap (Linux / Unix) или MapViewOfFile, чтобы получить файл, предварительно загруженный в виртуальную память, наиболее разумным способом, а затемatof + обработка пользовательских строк.
Если файл действительно хорошо организован для игр такого типа, вы даже можете быть хитрыми с mmaps и указателями и иметь многопоточное преобразование.Звучит как забавное упражнение, если у вас есть более 10 ГБ поплавков для преобразования на регулярной основе.