如何快速将大量数据写入txt文件

时间:2017-03-08 13:57:16

标签: c++ performance stream streamwriter

最近,我试图在Visual Studio 2010中使用C ++将pointcloud数据写入.txt文件。最初我使用ostream输出数据,但我发现写入数据时速度很慢。

我的代码:

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;

输出pointcloud非常巨大,差不多0.5G。写入.txt文件需要几分钟。如何提高写下数据的速度?我认为这可能是缓存缓冲区大小的问题,但不确定。有人可以帮我弄这个吗?

1 个答案:

答案 0 :(得分:0)

<div id=social>
  <a href="https://www.facebook.com/" target="_blank">
    <i class="fa fa-lg fa-facebook-f"></i>
  </a>
</div>

<script type="text/javascript">
   $('.social').append(document.getElementById('social'));
</script>

<div class="col-sm-7 social">facebook</div>

不是由IO引起的。如果我使用outfile&lt;&lt;(std :: string)str.c_str(); (str是一个长串 像200MB),这可能需要不到一秒钟。所以我使用多线程来拼接 将数据转换为长字符串并通过IO流输出。速度提高了 在4芯计算机上大约6次。