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