影响std :: cout对程序性能的影响

时间:2014-03-10 08:48:31

标签: c++ performance

我编写了一个程序,可以获取文件详细信息并将它们放在SQLite数据库中。 在这个过程中,我观察到两种情况:

情景1:

  1. 遍历每个文件并填写文件详细信息(路径) 到数据库(sqlite3)。
  2. 对于遇到的每个文件,请保留一个计数器并打印相同的文件 通过std :: cout。执行此程序所需的时间:30分钟
  3. 情景2:

    1. 遍历每个文件并填写文件详细信息(路径) 到数据库(sqlite3)。
    2. 执行此程序所需的时间:7分钟

      我不清楚为什么仅仅因为std::cout所花费的时间比不打印的时间多5倍

      对此场景的任何指示都非常感谢。非常感谢。

      此致 拉维

2 个答案:

答案 0 :(得分:0)

尝试使用std::ios_base::sync_with_stdio(false),默认情况下std :: cout sync与stdio

答案 1 :(得分:0)

打印到控制台的成本很高。通常比写入文件更耗时。

我打赌你的代码可以在不到一分钟的时间内运行。确保在a transaction中包围一些插入内容。您还可以在一个语句中使用多个插入,如this question的答案中所述。