質問: コマンドを実行すると、詳細が遅くなりますか? 多くのアプリケーションで-vフラグを使用することが少なくなっています(特にtarやcpなどの簡単なもの)。ただし、サイズの大きいファイルを解凍すると、-vフラグを使用しない場合よりも時間がかかります。これは端末がテキストを処理する必要があり、バッファにどんなバッファがあっても満たすためだと思います。しかし、私の質問は、これによりアプリケーションの実行速度が実際に遅くなるのですか、それとも同じ時間で完了しますか?
回答: はい、詳細を実行するとアプリケーションの速度が低下します。どの程度がアプリケーションに依存します。端末へのすべての印刷には、追加の処理時間が必要になります。 printf()またはその姉妹のいずれかを使用する場合、これはかなりの量の処理が無駄になります。また、端末はそのデータを処理する必要があります。アプリケーションと端末の間のバッファスペースには制限があり、ioチャネルは、実際にデータを出力するのに十分なスペースがバッファにあるまでブロックされます。アプリケーションは通常、このブロッキングが行われている間、続行できます。1また、端末にデバッグテキストを表示する作業は、処理サイクルを消費します。繰り返しますが、これはアプリケーション(デバッグの量)、ターミナルプログラム(使用されるフォント、エフェクトなど)、さらには使用中のxウィンドウドライバー(ハードウェアアクセラレーションなど)にも依存します。timeプログラムを使用すると、コマンドの実行にかかった時間をかなり正確に判断できます。同じプログラムを2回実行すると、1回はデバッグあり、1回はデバッグなしで、プログラムがどの程度の違いをもたらすかがわかります。コマンドを実行する前にコマンドを1回実行して、コマンドの両方のテスト実行でキャッシングが同じであることを確認することをお勧めします。ほとんどのデータは最初の実行でキャッシュされたので、2番目の実行を大幅に高速化して結果を歪めたくありません...1 マルチスレッドアプリケーションの場合、実際には、デバッグ出力を実行するスレッドのみがブロックします。