C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++でstd::endlの使用を避けるべき理由


このセクションでは、コンソールまたはファイルに行を出力するときにstd::endlを回避する必要がある理由を説明します。現在の行の後に改行を作成するためにstd::endlを使用します。数行のIO操作では、問題は発生していません。ただし、大量のIOタスクの場合、パフォーマンスが低下します。

endlは新しい行を作成するために使用されますが、新しい行にのみ送信されるのではなく、カーソルを次の行に送信した後、毎回バッファをフラッシュします。

バッファーのフラッシュはプログラマーの仕事ではありません。オペレーティングシステムがその責任を負います。フラッシュを要求するたびに、オペレーティングシステムに要求します。この要求は比較的高価です。また、いくつかの行を書き込んだ後、毎回バッファをフラッシュする必要はありません。 IOストリームは、バッファがいっぱいになると自動的にバッファをクリアします。

std ::endlを使用し、「\ n」を使用して100000行近くのテキストをファイルに書き込むのに必要な時間を分析すると、違いを簡単に確認できます。 std ::endlを使用しているコードは、タスクの後に「\ n」を使用する場合と比較して、タスクの完了に2倍近くの時間がかかります。


  1. Ryver:Slackの代わりにそれを使うべき理由

    誰もがSlackについて聞いたことがあるようです。これは、複数のプラットフォームで使用してループを維持できるチームコミュニケーションツールです。これは、ユーザーがプロジェクトについて話し合い、計画する方法に革命をもたらし、メールへの明確なアップグレードです。 私は小さな執筆チームで働いていますが、使用中にスマートフォンやパソコンで他の人とコミュニケーションをとることに問題はありませんでした。あらゆる規模のチームの最新情報を入手したい場合は、最新情報を入手するのに最適な方法です。 それで、なぜ私たちはここにいるのですか? Ryverは次の大きなものになるはずで、Slackと比較してアップグレ

  2. Microsoft Defender の使用をやめるべき理由

    Microsoft Defender は Microsoft のような評判の高いブランドのものであり、無料であるという事実から、ほとんどの人が Microsoft Defender を信頼しています。ただし、最近強調されたいくつかの欠陥があり、セキュリティ ソリューションとして Microsoft Defender を再検討する必要があります。マルウェア対策評価会社の新しい調査によると、このソフトウェアはあなたが思っているほど効果的ではない可能性があります。最新の AV-Comparatives レポートによると、競合他社と比較すると、Microsoft Defender はオフラインの場合の