いくつかの最適化ルール

いくつかの最適化ルール

Linuxでいくつかの機能(オープン、コピー、圧縮、削除、イベント待ちなど)を実装するには、C ++で実装し、バイナリをプロセスとして実行する方が良いですか、それともシェルで実装する方が良いですか?スクリプト?

実装の詳細を無視すると仮定すると、シェルスクリプトの実行と比較して、バイナリをプロセスとして起動している間にどのくらいのメモリとCPU負荷が消費されるのか疑問に思います。

答え1

速度が変わりますか?はいまたはいいえ

圧縮アルゴリズムをスクリプトとして実装すると、C ++で実装した場合よりもはるかに遅くなります。

これを行うためにライブラリ関数/コマンドを呼び出すことはほとんど違いはありません。時間は、主に既存のライブラリ関数/コマンドによって実行された圧縮によって決まります。ファイルのオープン、ファイルのコピー、ファイルの削除、および待機はすべてカーネルによって行われ、アプリケーションで行われる操作がほとんどないため、変更が最小限に抑えられます。

しかし、知っている唯一の方法は両方を測定することです。

いくつかの最適化ルール

  • 動作させてから(必要な場合)、より速く/より小さくします。
  • 読みやすさを最適化します。
  • 速度が速くないという証拠がある場合にのみ速度を最適化してください。十分
  • 速度を最適化するときは、両方の実装を測定し、1つがより速いと仮定しないでください(間違っている可能性があります)。
  • 最適なケースに最適化するのではなく、常に悪いまたは平均的なケースに最適化します。

関連情報