私はCでの出力に関する質問で誰かを助けていましたが、答えを(私の答えで)使用したかったこの一見単純な質問に答えることができませんでした。
C / C ++でファイルに出力する最速の方法は何ですか?
C++ と Java を使用して、素数の生成と数学的アルゴリズムの最適化について多くの作業を行ってきましたが、これが最大の障害でした。
これが答えられていたら許してください。
誰かがベンチマークの作業を行うとは思っていませんが、ファイルに入れる方法はいくつかあり、それらすべてを知っているとは思えません。
要約すると、
C および C++ でファイルに出力するにはどのような方法がありますか?
そして、これらのうちどれがより速いですか?
明らかに、コンソールからのリダイレクトはひどいものです。printf
、cout
、などの簡単な比較fputc
が役立ちます。
編集:
コメントから、
cout と printf の優れたベースライン テストがあります: cout と printf を組み合わせて出力を高速化する
これは素晴らしいスタートですが、私が求めていることに対する最良の答えではありません。たとえば、可能であれば、コメントに記載されている std::ostreambuf_iterator<> を処理しません。また、fputcを処理したり、コンソールのリダイレクトについて言及したりしません(比較するとどれほど悪いか)(必要があるわけではありません)
編集2:
また、私の過去のケースを議論するために、ほぼ無限の量のデータが出力されていると仮定することができます (新しい Intel i7 で文字通り何日も実行され、ギガバイトのテキストを生成するプログラム)
一時的なストレージは、ここでは非常に役立ちます。私が知っているように、ギガバイトのデータを簡単にバッファリングすることはできません。