Summary: | cpio needs a --block-size= option | ||
---|---|---|---|
Product: | Base System | Reporter: | Ronald F. Guilmette <rfg> |
Component: | bin | Assignee: | freebsd-bugs (Nobody) <bugs> |
Status: | New --- | ||
Severity: | Affects Many People | CC: | cem, rfg-freebsd |
Priority: | --- | ||
Version: | 9.1-RELEASE | ||
Hardware: | Any | ||
OS: | Any |
Description
Ronald F. Guilmette
2017-11-29 00:26:39 UTC
Interesting. I wasn't aware cpio archives even supported multi-gigabyte files. (They don't run into a 32-bit size limit?) That said, why continue to use cpio at all instead of cp -R? FWIW, on CURRENT cpio (from contrib/libarchive/cpio/cpio.c) uses a hard coded 16 kiB buffer on the stack. Please forward this to the upstream libarchive project by filing an issue here: https://github.com/libarchive/libarchive/issues Oy vey! I think that I may perhaps want to withdraw this PR entirely, now that I have some additional (and troubling) data. After I filed this PR, just for laughs, I tried using that --block-size cpio option on my Ubuntu system and then tried again to time a multi-gigabyte file copy (cpio -p) which I had already times using other methods (e.g. "cp" and "cpio -without any --block-size= option). I did my test with --block-size=1M. To my amazement and horror, adding the --block-size=1M option didn't really make any huge difference. The bloody file copying was -still- running at least 5x slower than copying of a similar sized file using good old "cp". Moral of the story: I guess I'm the only one on the planet who is still even trying to use good old cpio. it appears that all of the work and tuning and optimizations have gone into cp and/or rsync instead... both of which are fast snot... while leaving poor old cpio to wallow in the backwaters of virtual abandonment. Sigh. I find this rather a pity, because, given that cpio is MUCH simpler than rsync, in theory it -should- be able to do file copies at least as fast, or perhaps even a bit faster. (It doesn't have the added burden of all the network awareness and all that fancy schmancy differential file comparison stuff to deal with, unlike rsync.) But it seems that I'm the only one in the universe who has even noticed, in all the years of this century so far, that poor old cpio just hasn't been keeping up. Thus, it is silly of me to try to swim against the tide. I'll just use cp and rsync from now on and be done with it. |