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