C ++ fstream写入文件非常慢

时间:2015-07-18 04:18:56

标签: c++ file fstream tiles

我的游戏中有一个由瓷砖组成的2D世界。每当我创建一个新世界时,我都会初始化一个包含4800万个瓦片的数组

short worldGrid[48000000];

我设置了所有4800万的值,然后我将这些值写入这样的文件:

    std::fstream save("game_save", std::fstream::out);

    for (int x = 0; x < 48000000; x++)
    {

        save << world.worldGrid[x];
        save << " ";

    }
    save.close();

这是4800万个值,每个2个字节。所以9600万字节,或96兆字节。我的问题是,在我的SSD上完成for循环内部的这个过程需要2分钟。我不觉得花费2分5秒就可以将96mb的数据写入此文件。如果有人有任何建议我会非常感激。

1 个答案:

答案 0 :(得分:3)

尝试一次写入数组,而不是一次写入2个字节。 类似的东西:

 save.write(world.worldGrid, sizeof(worldGrid));

请参阅the docs