単純なbashスクリプトを実行するのに時間がかかりすぎます。

単純なbashスクリプトを実行するのに時間がかかりすぎます。

.bashrc代わりに使用するために、次の関数を作成しましたrm *

function re()
{
   cp . -R /home/glset/ritwik/trash/
   rm *
}

動作しますが..非常に遅いです。小さなファイルでも実行に時間がかかります。両方のコマンドを順番に実行する方が常に高速ですが、これはまず関数の目的を失います。私がここで何か間違っているのでしょうか?何が長くかかりますか?

答え1

関数を実行したり、2つのコマンドを別々に実行しても、実行時に測定可能な違いはありません。

私の考えでは、関数を実行し、速度が遅いことを確認してから、個別にコマンドを試したようです。

これにより、最初はデータがディスクキャッシュに存在しないため、ディスクからデータをロードするのにかかる時間を測定できます。 2番目は、データがすでにディスクキャッシュにある(アクセスしたばかりのため)、メモリにデータをコピーするのにかかる時間を測定します。

適切なベンチマークを実行するには、同じ条件ですべての測定を開始する必要があります。つまり、すべてのデータがキャッシュにあることを知っているか、すべてのデータをディスクからロードする必要があることを知っています。


データをコピーしてからソースを削除することは非常に奇妙なアプローチです。しかし走りなさいmv!同じファイルシステム内でファイルを移動するとすぐに発生します。

また、rm *これは非常に珍しい命令です。ディレクトリが不要になったら削除します。rm -r somedirまたはmv somedir ~/trash/

関連情報