On Sun, May 21, 2017 at 11:25 PM, Stephan Eggermont <step...@stack.nl> wrote:
> At the PharoDays I was painfully reminded that SSDs perform really badly > when using small files. The Bloc tutorial used a github filetree repo and > that has a lot of files. The whole folder is 116 MB in 16K files. Copying > that amount of data should not be noticable, taking about a third of a > second. With it being in so many files, it took more than half a minute, or > a hundred times as long. > > That is too much overhead. How can we improve the file format in a way > that keeps the cross-platform exchange advantages and a reasonable way to > view diffs and propose small changes using the github web tools? > > Cuis uses a different format with git. How does that compare? What is used > in Squeak? > > So this was copying files at the OS level? Which OS? For comparison, pulling whole of pharo-core across network and unpacking... $ time git clone --depth=1 https://github.com/pharo-project/pharo-core.git real 0m44.306s user 0m5.384s sys 0m5.908s Count and size of files $ find pharo-core/ | wc -l 152547 [files] $ du -sh pharo-core 639MB The smaller size of the archive without compression was a surprise. i.e. two-thirds empty space in filesystem blocks... $ time tar cf pharo-core.tar pharo-core/ real 0m8.216s user 0m2.284s sys 0m3.776s $ ls -lh pharo-core.tar 212MB File by file copy to a USB stick. Wow! Yes, thats over an hour. $ time cp -R pharo-core /media/ben/USBSTICK/pharo-core real 68m49.168s user 0m1.852s sys 0m39.768s Many forums indicated the following should be faster, but it was not... $ time ((tar cf - pharo-core) | (tar xf - -C /media/ben/USBSTICK/)) real 77m47.896s user 0m6.360s sys 0m38.900s Saving to an archive on USB stick is much quicker... $ time tar cf /media/ben/USBSTICK/pharo-core.tar pharo-core real 1m35.723s user 0m3.188s sys 0m5.972s Saving to a compressed archive on USB stick is muchmuch quicker... $ time tar zcf /media/ben/USBSTICK/pharo-core.tgz pharo-core real 0m11.778s user 0m7.908s sys 0m3.604s Saving to a compressed archive on USB stick, then unpacking that to local drive... $ time (tar zcf /media/ben/USBSTICK/pharo-core.tgz pharo-core \ && tar zxf /media/ben/USBSTICK/pharo-core.tgz -C restore/) real 0m49.934s user 0m10.552s sys 0m9.192s So 38 seconds to unpack, which is very similar to original git clone. But I guess your primary drive is SSD? So you don't get to bypass the issue using archvies? What result do you get cloning pharo-core like my first test case? cheers -ben