最近,我试图在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文件需要几分钟。如何提高写下数据的速度?我认为这可能是缓存缓冲区大小的问题,但不确定。有人可以帮我弄这个吗?
答案 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次。