git clone https://github.com/openbsd/src.git --depth=1
rm -rf src/.git
pijul init
time pijul add --recursive src
6.94 real 4.05 user 2.72 sys
$ time pijul record -am 'src'
Recorded patch AwkhEjnwunkxpYUtYBCrA2VccUuw1nzHPWNGSNRhcfgmRUUGVqxUJCukbgSv229maMwh9bosCD96dnKSYo6FgBpQ
338.71 real 243.48 user 76.10 sys
$ time pijul diff
206.57 real 173.96 user 11.78 sys
$ time pijul status > /dev/null
898.73 real 884.02 user 10.01 sys
In git this takes only seconds, it uses almost no memory, and the repository is still usable after the commit (e.g. see the times for diff and status).
Thanks for spending time to benchmark both systems. It highlights how far pijul may come after it’s had a decade of investment to catch up to git. Fortunately, it has religious extremists - I am one - to support it during its inception. It’s eaten my lunch and abandoned me, and, yet, I still hope it survives to adolescence.
Are you planning, for example, to submit a patch to improve the skiplist in sanakirja ?
Are you planning, for example, to submit a patch to
Sorry no. I just couldn’t find any performance issues open and wanted to report the issue. I thought these use cases might be easy to reproduce, and easy to benchmark.
improve the skiplist in sanakirja ?
Is this was causing the orders of magnitude slowdown and making the repository unusable afterwards ? There are a lot of efficient skiplist implementations on crates.io that could be used, but since pijul performance only blow up for large projects, and since it does so in a super-linear way, this smells to me to a wrong algorithmic complexity somewhere. Maybe some operation that should be O(1) is O(N).