После выполнения следующей проверки:
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 секунды, в то время как вызовы write занимают колоссальные 46 секунд.Как, со всей причудливой магией форматирования, которую делает printf
, и тем фактом, что printf
сам вызывает write
, возможно ли это? Есть ли что-то, чего мне не хватает?
Любые мысли и комментарии приветствуются.