執行下列試驗後:write或printf,哪個更快?
for(i = 0; i < 3000000; i++) {
printf("Test string\n");
}
for(i = 0; i < 3000000; i++) {
write(STDOUT_FILENO, "Test string\n", strlen("Test string\n"));
}
事實證明,所述呼叫對printf採取總計爲3秒,而調用寫採取高達46秒。如何用printf
所具有的所有奇妙格式化魔術,以及printf
本身稱爲write
的事實,這可能嗎?有什麼我失蹤了嗎?
任何和所有的想法和輸入讚賞。
這取決於您的系統 – JMBise
printf會緩衝。 –
真的嗎?你是每次計算字符串長度,然後測量它作爲時間的一部分? –