Я помогал кому-то с вопросом о выходе на C, и я не смог ответить на этот, казалось бы, простой вопрос, на который я хотел использовать ответ (в моем ответе), то есть:Самый быстрый выход в файл в c и C++
Каков самый быстрый способ вывода в файл на C/C++?
Я проделал большую работу с генерацией простых чисел и математическим алгоритмом, используя C++ и Java, и это было самым большим удержанием для меня иногда - мне иногда нужно много перемещать в файл и быстро.
Простите меня, если на это был дан ответ, но я искал google и SO в течение некоторого времени безрезультатно.
Я не ожидаю, что кто-то сделает работу по бенчмаркингу, но есть несколько способов подать в файл, и я сомневаюсь, что знаю их всех.
Итак, подведем итог,
Какие способы есть для вывода в файл в C и C++?
И какой из них является более быстрыми?
Очевидно, перенаправление с консоли ужасно. Любое краткое сравнение printf
, cout
, fputc
и т. Д. Поможет.
Edit:
Из комментариев,
Там отличный базовый тест соиЬ и Printf в: mixing cout and printf for faster output
Это отличный старт, но не самый лучший ответ на то, что Я прошу. Например, он не обрабатывает std :: ostreambuf_iterator <>, упомянутый в комментариях, если это возможно. Он также не обрабатывать fputc или упомянуть перенаправление консоли (как плохо по сравнению) (не то, что ему нужно)
Edit 2:
Кроме того, ради аргументируя свое историческое дело, вы можете взять на себя почти бесконечное количество выводимых данных (программы буквально работают в течение нескольких дней на более новом Intel i7, производя гигабайты текста)
Временное хранилище полезно только здесь - вы не можете буферизировать гигабайты данных, которые я знаю ,
Имейте yo попытался использовать std :: ostreambuf_iterator C++ <>? –
Я не слышал об этом. Благодарю. Я должен попытаться написать несколько тестов бенчмаркинга со всеми методами, которые я могу найти через несколько дней. – Plasmarob
Возможный дубликат [mix cout и printf для более быстрого вывода] (http://stackoverflow.com/questions/1924530/mixing-cout-and-printf-for-faster-output) – cubrr