【问题标题】:Why is console output so slow?为什么控制台输出这么慢?
【发布时间】:2011-11-16 07:13:38
【问题描述】:

所以我在 Windows XP、Vista 和 7 上使用几种不同的语言时注意到了这一点。如果您每秒将几千行转储到控制台窗口,通常会对系统性能产生负面影响。计算机速度很快,而且总是更快,而控制台看起来只是背景上的一些文本。瓶颈在哪里?

【问题讨论】:

  • 我想你已经回答了你自己的问题......
  • 您在哪个平台上观察到这种行为。视窗,Unix,Mac。 . .?
  • 这是一个公平的问题,从了解为什么更新文本窗口缓慢的角度来看,可能会提供有关是否可以采取任何措施来缓解问题的见解,例如将控制台输出流附加到一些自定义窗口更新逻辑。
  • 瓶颈在输出中......它必须花费一些时间才能打印出来(即使以不可读的速度),而不是不打印出来。顺便说一句,每秒几千行有点过头了。在命令窗口中打印时最多看到一百左右。
  • 在我自己的有限测试中,Windows 7 向控制台输出文本的速度至少比 OSX 或 Linux 慢 10 倍(而且我是在同一台计算机上完成这一切的,并且使用 Bootcamping Windows)。

标签: windows-7 windows-xp windows-vista console-application


【解决方案1】:

printf 等必须从带有某种IPC 的进程转到控制台窗口进程(csrss 或 conhost) 控制台也可以与多个进程共享,因此还会进行一些同步和缓冲。

【讨论】:

  • 我遵循您在回答中所说的话。你有更多的细节可以提供吗?
  • @QueueHammer Windows 实现未记录并使用 LPC (j00ru.vexillium.org/?p=527) WINE 还提供了一些有用的信息 (winehq.org/docs/winedev-guide/x3423)。为了好玩,运行“cmd.exe /C dir /S /B c:\”并观察 csrss 在单核 2000/XP 系统上使用 50% CPU...
猜你喜欢
  • 2011-07-13
  • 1970-01-01
  • 1970-01-01
  • 2014-11-20
  • 2014-05-02
  • 1970-01-01
  • 2014-03-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多