2011-09-13 39 views
8

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

+0

我认为你已经回答了你自己的问题... –

+0

你在什么平台上观察这种行为。 Windows,Unix,Mac。 。 。? –

+0

这是一个公平的问题,从知道为什么更新文本窗口很慢的角度来看,可能会提供有关是否有任何可以缓解问题的信息,例如将控制台输出流附加到某些自定义窗口更新逻辑。 – supercat

回答

3

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

+0

我遵循你在回答中的说法。你有没有更多的细节可以提供? – QueueHammer

+0

@QueueHammer Windows实现没有文档,并使用LPC(http://j00ru.vexillium.org/?p=527)WINE还提供了一些有用的信息(https://www.winehq.org/docs/winedev-guide/) x3423)。为了好玩,运行“cmd.exe/C dir/S/B c:\”,并在单个核心2000/XP系统上观看csrss使用50%的CPU ... – Anders