执行下列试验后: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会缓冲。 –
真的吗?你是每次计算字符串长度,然后测量它作为时间的一部分? –