【问题标题】:Make printf write faster to the Windows commandline使 printf 更快地写入 Windows 命令行
【发布时间】:2011-10-30 09:48:25
【问题描述】:

我正在分析一些高分辨率的 midi 数据。我正在将其写入标准输出,但由于有太多数据进入,在我执行实际操作后需要几秒钟才能显示出来。

目前这一行写入命令行:

std::vector<unsigned char> message;
...
printf("W 1 = %03d, W 2 = %03d, W 3 = %03d \n",(int)message[2],(int)message2[1],(int)message2[2]);

【问题讨论】:

  • 你的阅读速度有多快?我的意思是,你真的需要在命令窗口中显示你正在显示的所有内容,而不仅仅是“重要”的东西吗?
  • 为什么不写入文件?然后随心所欲地分析文件?我会支持查尔斯,只将关键的东西推送到控制台......
  • 为了记录,写入标准输出就是写入文件。程序不知道它是否在控制台上结束,或者它是否被重定向到文件或通过管道传输到其他进程。

标签: c++


【解决方案1】:

这很有可能是视频驱动程序问题 - 视频卡制造商可能并不总是非常关注控制台窗口的性能。我的钻机速度非常慢——我的意思是拔牙很痛苦——控制台窗口通过更新视频驱动程序在这方面可能提高了 100 倍。

【讨论】:

  • 哇,这真是个天才的主意。我正在运行一个比特币矿工,它使用 100% 的 GPU 性能。改变它的攻击性后,它现在可以正常工作了。
  • 哇,你知道……我的知识库里有东西……谢谢@michael
【解决方案2】:

为什么你不使用像 here 这样的字符串生成器类并附加所有输出字符串并在最后写入输出?

你怎么看?

【讨论】:

  • 如果数据创建得更快,然后打印出来,我肯定会使用一个线程保存它并使用第二个线程在某处打印...
  • @zzzz,哎呀,我没有点击链接! :( 我看到了标题(忘记了 SO 去掉了 ++,所以它看起来像一个 c 等效项......)doh!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-08
  • 1970-01-01
相关资源
最近更新 更多