C++:ofstream.tellp()有多贵?

Gab*_*iMe 4 c++

我想以每秒数千次的紧密循环来调用它.这是一个昂贵的电话吗?我使用的是Windows Visual C++.

CB *_*ley 5

C++不要求该标准库的任何特定部分的性能(以秒为单位)(尽管许多容器和算法都有复杂性要求).

这意味着您将受到实施的支配.唯一可靠的做法是测量它并查看它是否可以在您的应用程序中使用.

  • @bugspy:让您的代码以易于阅读和维护的方式工作.简介*当你完成*所以你不是在猜测什么是慢的,并且实际上可以看到什么是缓慢的.在此之前无所谓,写下你需要的东西.如果你*打电话给它,那真的不重要,是吗? (2认同)
  • @ bugspy.net:如果结果真的很贵,那就担心吧.如果你在开始编码之前试图找到每个问题的最终解决方案,你就会瘫痪自己. (2认同)

Tad*_*zys 5

这是一个老问题,但无论如何我都会回答,以防有其他人在寻找答案.

所以我们有一个日志库,它使用streams和tellp来确定文件的大小.它确实为每个日志调用了tellp.

所以使用tellp 1日志行将花费20微秒,具体取决于机器.没有它,日志大约需要1微秒.

所以,根据您的域名,它可能非常昂贵,或者根本不重要.

ps首先优化规则 - 不优化..