Kürzlich habe ich versucht, Pointcloud-Daten in .txt-Datei mit C++ in Visual Studio 2010 zu schreiben. Am Anfang habe ich Ostream verwendet, um die Daten auszugeben, aber ich fand es langsam beim Schreiben der Daten.Wie schnell große Datenmengen in TXT-Dateien schreiben
Mein Code:
std::ofstream outfile;
outfile.open(filename.c_str());
for(int index = 0;index < pointcloud.size();index++){
outfile<<pointcloud[index].x<<pointcloud[index].y<<pointcloud[index].z
<<pointcloud[index].r<<pointcloud[index].g<<pointcloud[index].b<<'\n';
}
outfile<<std::endl;
Der Ausgang Punktwolke ist sehr groß, fast 0.5G. Es dauert Minuten, um in die .txt-Datei zu schreiben. Wie kann ich die Geschwindigkeit beim Schreiben der Daten verbessern? Ich dachte, es könnte das Problem der Größe des Cache-Puffers sein, aber nicht sicher. Kann mir jemand dabei helfen?
Sie könnten std :: copy verwenden, um die Leistung zu verbessern. –
Sind die Quelldaten ('pointcloud') alle im Arbeitsspeicher oder handelt es sich um einen Container-Wrapper für" cloudbasierte "Daten? Wenn es Letzteres ist, könnte Ihr Problem da sein ??? – franji1
Holen Sie sich eine schnellere Festplatte und mehr RAM. Ihre Leistung ist durch die Geschwindigkeit Ihrer Festplatte begrenzt. Ohne die Gesetze der Physik dieses Universums zu ändern, ist die einzige Antwort schnellere Hardware. –