svg

Mempercepat Perintah find -exec

linux
> time find . -type f -exec ls -lah {} \;

real  0m21.421s
user  0m12.262s
sys 0m8.926s
> time find . -type f -exec ls -lah {} +

real  0m0.268s
user  0m0.106s
sys 0m0.153s

Hanya dengan mengganti \; dengan + dapat mempercepat sebesar 79.929104478x

Kok bisa begitu? karena:

  • -exec ls -lah {} \; Menjalankan ls -lah untuk setiap file yang ditemukan, satu-satu.
  • -exec ls -lah {} + Mengumpulkan path file yang ditemukan jadi satu baru kemudian menjalankan ls -lah satu kali sekaligus. Tapi ini ada batasannya, daftar path file tidak boleh melebihi batas argument sistem. Kalau di linux batasnya sebesar nilai getconf ARG_MAX