diff options
author | Shawn Pearce <spearce@spearce.org> | 2017-02-24 14:57:20 -0800 |
---|---|---|
committer | Shawn Pearce <spearce@spearce.org> | 2017-02-26 11:16:19 -0800 |
commit | 982f5d1bf184a2edab726f3c77f09a1157059e35 (patch) | |
tree | b60997fed73407d4a99d413aab5d28b2063f1b2f /org.eclipse.jgit.test/META-INF/MANIFEST.MF | |
parent | 9af93f43ccd4047dd74ec4a54a0f15a22296e465 (diff) | |
download | jgit-982f5d1bf184a2edab726f3c77f09a1157059e35.tar.gz jgit-982f5d1bf184a2edab726f3c77f09a1157059e35.zip |
Pure Java SHA-1
This implementation is derived straight from the description written
in RFC 3174. On Mac OS X with Java 1.8.0_91 it offers similar
throughput as MessageDigest SHA-1:
system 239.75 MiB/s
system 244.71 MiB/s
system 245.00 MiB/s
system 244.92 MiB/s
sha1 234.08 MiB/s
sha1 244.50 MiB/s
sha1 242.99 MiB/s
sha1 241.73 MiB/s
This is the fastest implementation I could come up with. Common SHA-1
implementation tricks such as unrolling loops creates a method too
large for the JIT to effectively optimize, resulting in lower overall
hashing throughput. Using a preprocessor to perform the register
renaming of A-E also didn't help, as again the method was too large
for the JIT to effectively optimize.
Fortunately the fastest version is a naive, straight-forward
implementation very close to the description in RFC 3174.
Change-Id: I228b05c4a294ca2ad51386cf0e47978c68e1aa42
Diffstat (limited to 'org.eclipse.jgit.test/META-INF/MANIFEST.MF')
-rw-r--r-- | org.eclipse.jgit.test/META-INF/MANIFEST.MF | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.test/META-INF/MANIFEST.MF index a8a70df69a..fca6eec3fa 100644 --- a/org.eclipse.jgit.test/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.test/META-INF/MANIFEST.MF @@ -49,6 +49,7 @@ Import-Package: com.googlecode.javaewah;version="[1.1.6,2.0.0)", org.eclipse.jgit.treewalk.filter;version="[4.7.0,4.8.0)", org.eclipse.jgit.util;version="[4.7.0,4.8.0)", org.eclipse.jgit.util.io;version="[4.7.0,4.8.0)", + org.eclipse.jgit.util.sha1;version="[4.7.0,4.8.0)", org.junit;version="[4.4.0,5.0.0)", org.junit.experimental.theories;version="[4.4.0,5.0.0)", org.junit.rules;version="[4.11.0,5.0.0)", |