We have the following 3 ways to delete a build directory:
* rm -fr build
* find -delete build
* rsync -a --delete emtpy_dir build

I've heard that rsync is the fastest way for removing millions of files,
so I did a test on removing the build dir:

* Host info:
  $ cat /etc/issue
  Ubuntu 14.04.4 LTS \n \l

  $ rm --version
  rm (GNU coreutils) 8.21

  $ find --version
  find (GNU findutils) 4.4.2

  $ rsync --version
  rsync  version 3.1.0  protocol version 31

* Do a build
  $ . oe-init-build-env build
  $ bitbake core-image-minimal

* Size:
  $ du -sh build
  22G

* Files amount:
  $ find build -type f | pv -l  >/dev/null
  2.61M

  2.61 millions files

* Make 3 copies:
  $ cp -r build build_copy_1
  $ cp -r build build_copy_2
  $ cp -r build build_copy_3

* Remove them:
  $ time rm -fr build_copy_1/
  real    3m26.249s
  user    0m4.612s
  sys     1m1.704s

  $ time find build_copy_2/ -delete
  real    3m6.771s
  user    0m4.236s
  sys     0m59.592s

  $ time rsync -a --delete empty/ build_copy_3/
  real    5m7.115s
  user    0m8.612s
  sys     1m13.928s

We can see that find -delete is the fastest way, rsync is the slowest one,
and rm is close to find. Maybe it is because find and rsync are improved in
nowadays, so they are faster than rsync.

--
Thanks

Robert
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to