小型程序编译运行时输入输出延迟严重,求解决方案
控制台输入输出延迟问题的解决方法
强制刷新输出缓冲区
C语言标准输出默认是行缓冲模式,没带换行符\n时不会立即输出内容。可以手动调用fflush(stdout)强制刷新,示例代码:printf("hello world"); fflush(stdout); // 立即把缓冲区内容输出到控制台或者直接在printf末尾加换行符:
printf("hello world\n");,触发自动刷新。修改控制台缓冲模式
调用setvbuf函数关闭输出缓冲,Windows、Linux/macOS系统都适用:#include <stdio.h> int main() { setvbuf(stdout, NULL, _IONBF, 0); // 设置标准输出为无缓冲模式 printf("hello world"); return 0; }清理系统后台高负载进程
所有环境都出现延迟,大概率是系统后台有进程占用了大量CPU或IO资源。打开任务管理器(Windows)或者用top命令(Linux/macOS)查看进程占用情况,关掉没必要的后台程序。排查杀毒软件干扰
部分杀毒软件的实时防护会扫描控制台程序的IO操作,拖慢响应速度。临时关闭实时防护试试,要是问题解决,就把编译生成程序的文件夹加到杀毒软件的信任列表里。更新系统和编译器
旧版本的系统或编译器可能存在已知的IO性能bug。把Windows系统更到最新版本,g++、Visual Studio等编译器也更新到稳定的最新版。调整VS Code Code Runner设置
在VS Code里打开Code Runner的设置,勾选code-runner.runInTerminal选项,让程序在系统终端而非内置终端运行——内置终端有时会存在IO处理延迟问题。
内容的提问来源于stack exchange,提问作者Alfred Yang
相关产品推荐
相关产品推荐

