我想做一个iostreamtypes的类。 我想find写一组字符到屏幕的最有效的方法。 思路:
printf – 我不想要types格式化我需要自己做。
WriteConsole – 读取它比printf慢? 真假?
*大会 – 不知道如何
其他?
*我主要关心的是如果我能find如何做到这一点。 我没有任何赶时间。
编辑:出于某种原因WriteConsole比较慢。
我会建议尝试一些方法(你已经提到了一对夫妇)和基准结果。 你可能会对你的结果感到惊讶,但即使他们如你所料,你至少可以确定你正在尽力而为。 尽管如此,如果你发现比printf快得多,我会感到惊讶。
编码(以我的经验)最实用的方法是这样的:
这听起来像你甚至没有开始从你的问题设计/编码。 当心过早的优化…
使用“fwrite”:
fwrite( buffer, size, 1, stderr );
这将比你所需要的要快得多。 而且你有一个奖励,那么你可以让你的iostream类不仅能够写入控制台,而且还能写入文件。
我发现对于使用WriteConsoleOutputCharacter()
fwrite()
Windows, stdout
平均值与fwrite()
WriteConsoleOutputCharacter()
平均值相同,如果不使用<stdio.h>
,则需要少一个文件。 两者都非常快。 我没有测试FillConsoleOutputCharacter()
。 我可能没有使用那么好的基准。 至于过早的优化,我不得不先解决这个问题,当为控制台窗口创建一个很酷的小库时,或多或少地把它变成一个基于Windows的环境,并且用一个总体的系统来管理它。 我使用这个系统进行大学和个人文本游戏。 对于使用cout
和朋友的日志记录和类似的行为,尽管速度很慢(呃),但同样也能完成这项工作。