По моим тестам fprintf медленнее fputs+sprintf, то есть быстрее вывести в память всё sprintf-ами и вывести затем в файл одним fputs. Однако на практике в моем приложении это не всегда подтверждается (есть места где fprintf оказывается быстрее sprintf+fputs).
1. От чего зависит скорость работы fprintf (при стандартных размерах буферов, т.е. без игр с setvbuf), и разная ли будет относительная скорость работы fprintf/sprintf+fputs для разных платформ? Или я совсем не прав, потому что тесты выводили информацию на stderr, который я сливал в /dev/null (вроде stderr запрещено буферизовать).
2. Стоит ли fputs заменить на fwrite в случае если sprintf+fputs все-таки лучше?
По коду: рассматриваю использовать ли Nx sprintf+N/50x fputs или Nx fprintf, размер порции частовыводимой информации в файл от 5 до 32 байт (N/50 - это неподтвержденная моя прикидка).
P.S. Поделитесь опытом. Да, программа обрабатывает входящий поток миллионов записей... (wc -l для типового файла выдал 6'896'149).
Ответ на:
комментарий
от saper
Ответ на:
комментарий
от php-coder
Ответ на:
комментарий
от saper
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Исследование производительности *printf и вывода в файл (2006)
- Форум sprintf в BASH (2009)
- Форум perl sprintf (строки) (2008)
- Форум printf vs fprintf(stderr) (2024)
- Форум open() & fprintf() не работает. (2004)
- Форум Помогите разобраться с sprintf (2012)
- Форум sprintf uint32_t --> бинарная строка (2011)
- Форум вызов sprintf из функции (2014)
- Форум sprintf и выделение памяти (2005)
- Форум [C++]fprintf, fscanf. Побайтовая запись/чтение. (2011)