bsdtar vs gtar performance

Bruce Evans bde at zeta.org.au
Sun Sep 24 01:23:48 PDT 2006


On Sat, 23 Sep 2006, Tim Kientzle wrote:

> Kris and Ruslan were recently discussing the performance of bsdtar
> relative to gtar, which prompted me to do some measurements
> of my own.   I used /usr/ports as my test, because it stresses
> file and directory creation over extracting large files.
>
> Here are some initial results, based on ten runs of each test on a
> quiescent system, comparing results with PHK's "ministat":
>
> [... ones with no difference]
>
> * Extracting uncompressed archives:  gtar is about 13% faster
>   than bsdtar in my test.  Interestingly (to me), this was the same
>   with or without -m.  (I've long suspected dir timestamp restores
>   as a contributor; this shows otherwise.)

Changes to attributes by syscalls (utimes(), chown()... are always
written asynchronously, so -m should always have little effect.

A quick test showed that the main difference for extraction is that
bsdtar does an lchmod() for every file extracted.  gtar apparently
optimizes away null chmod()'s.  I would expect -m to make little
difference for bsdtar since the writes for the changes to the
attributes from utimes() + lchmod() are coalesced, but for gtar
-m would be noticeable faster since it usually eliminates these
writes.

Bruce


More information about the cvs-src mailing list