Hi,

Subversion is using the APR/APR-util checksum implementations (SHA1 and
MD5). One of our committers in Subversion made some tests switching out
these for the ones in OpenSSL instead. OpenSSL is (opt-out) using an ASM
optimized implementation on many platforms.

Copy-pasting from the commit message[1] to include some raw numbers:

[[[
- The benchmarking test was showing 0.16 GB/s raw speed with APR backend
and 1.38 seconds GB/s with OpenSSL. All of those are SHA1. This is 8.62
times jump!
- Status of a working copy with a single file (with size of 370 MB) simply
touched was taking 1.94 seconds of real time to execute with APR backend
and 0.30 seconds with OpenSSL (6.46 times improvement).
- The same test with a file of around 3 GB had a jump from 15.73 seconds to
2.23 seconds (7.05 times improvement).
- Checkout of the whole repository with those two files over file://
protocol took 40 seconds with APR and 20 seconds with OpenSSL (2 times
improvement).
]]]

The first benchmark is the raw speed, the others include other overhead in
Subversion and IO.

In the discussion after the initial commit it was suggested to instead have
this implementation in APR instead - making life a bit simpler for the
Subversion project and possibly giving other projects the same benefit.

What is the opinion of the dev@ list about this? Would it be good to have
or is it out of scope for APR/APR-util?

Cheers,
Daniel

[1] https://lists.apache.org/thread/o38r06vg08pyzzy35bfgg8ooovphsxss

Reply via email to