c - 如何创建我自己的比标准 printf 和 scanf 更快的 C I/O 函数?

标签 c

<分区>

我发现许多极客编码员正在用 C 语言创建自己的输入和输出函数以减少运行时间。但是我很难理解他们的代码。

那么您能否用简单明了的英语向我解释如何创建如此快速的 IO 函数?

提前致谢!

最佳答案

为了最大限度地发挥 Windows 控制台 I/O 的性能,您需要使用 Windows system calls for managing the console.在 Linux 上,标准 C 函数 readwrite 的性能最高。

现在,如果你想使用格式字符串,你将不得不创建一个格式解析器和评估器。如果您在代码中直接调用了各种函数,如 print_int(int)print_string(const char*),您可以在 Linux 上看到一些小的性能改进.在 Windows 上,如果您使用控制台缓冲区管理系统调用,您会看到一些巨大的改进。

但在大多数情况下,stdarg 处理将耗尽 printf 系列的大部分处理时间,而实际操作将消耗更大的处理时间写出到控制台缓冲区。如果您真的需要每秒喷出数兆字节的 printf,请将其路由到一个文件。如果这样做,printf 操作实际上是免费的,此时磁盘 I/O 将成为瓶颈。

关于c - 如何创建我自己的比标准 printf 和 scanf 更快的 C I/O 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23503282/

相关文章:

c - scanf 读入的值未按预期运行

c - 为什么for循环会变成无限循环?

将无符号表达式与 0 进行比较

c - 在TI cc26xx中预留闪存空间

c - 在服务器代码中收到来自 8080 的请求后,为客户端分配一个新的套接字

c++ - 如何制作反比例循环?

c - C 语言的简单硬币找零程序

ios - 在 Swift 中使用 C 文件导致链接器错误

c - 多线程程序中的段错误

c - 使用 SQLite FTS4 的自动 OR 查询