У меня есть 2D мир в моей игре, состоящий из плиток. Всякий раз, когда я создаю новый мир, я инициализирую массив из 48 миллионов плиток.
short worldGrid[48000000];
Я устанавливаю значение для всех 48 миллионов, а затем записываю эти значения в файл следующим образом:
std::fstream save("game_save", std::fstream::out);
for (int x = 0; x < 48000000; x++)
{
save << world.worldGrid[x];
save << " ";
}
save.close();
Это 48 миллионов значений, каждое по 2 байта. Итак, 96 миллионов байтов или 96 мегабайт. Моя проблема в том, что этот процесс внутри цикла for занимает всего 2 минуты на моем SSD. Я не чувствую, что для записи данных в этот файл требуется 96 минут и 5 секунд. Если у кого-нибудь есть какой-либо совет, я буду очень признателен.
Попробуйте записать массив сразу, а не по 2 байта за раз.
Что-то вроде:
save.write(world.worldGrid, sizeof(worldGrid));
Увидеть документы