C語言中, printf("number\n") 比 printf("number") 、C++中, std::cout << number << std::endl 比 std::cout << number 、Python 中, print number 比 print number,都要花上更多的時間,比如從一打印到一百萬,C中相差了7秒,C++ 5秒,Python 10秒(雖然python中后一種是把換行改成空格)。請問為什么會這樣?
1 回答

慕姐4208626
TA貢獻1852條經驗 獲得超7個贊
默認情況下stdout是行緩沖的,沒有換行的話,程序會盡量緩存,直到某個閾值(比如1024)為止。緩存減少了與IO設備的交互,所以顯然速度會更快。如果你在運行的時候把輸出重定向文件(文件默認是全緩沖),估計就看不出差別了。
添加回答
舉報
0/150
提交
取消