C ストリーム (cout) と C の printf 関数を混合すると、特に大規模なデータ セットを処理する場合に、実際に出力速度が向上します。メソッドを切り替える前にバッファをフラッシュするための予防措置を講じれば、このアプローチを採用するのが一般的に安全です。
提案されたコード スニペットの詳細な分析は次のとおりです。
cout << "Hello" << endl; cout.flush(); for (int i=0; i<1000000; ++i) { printf("World!\n"); } fflush(stdout); cout << "last line" << endl; cout << flush;
長所:
短所:
ベンチマークと最適化:
より包括的なビューを提供するには、次のパフォーマンス ベンチマークを検討してください。
// Various output techniques void use_printf() { ... } void use_puts() { ... } void use_cout() { ... } void use_cout_unsync() { ... } void use_stringstream() { ... } void use_endl() { ... } void use_fill_n() { ... } void use_write() { ... } int main() { show_time(use_printf, "Time using printf"); show_time(use_puts, "Time using puts"); show_time(use_cout, "Time using cout (synced)"); show_time(use_cout_unsync, "Time using cout (un-synced)"); show_time(use_stringstream, "Time using stringstream"); show_time(use_endl, "Time using endl"); show_time(use_fill_n, "Time using fill_n"); show_time(use_write, "Time using write"); return 0; }
結果:
結論:
以上がC ストリームと C の printf を混合すると出力速度が向上しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。