That's why I'm interested in proper benchmarks before supporting a
release of something with platform-specific code. The CPU extensions
are ostensibly for optimizing the code where possible (the Blake3 code
has a dynamic dispatch mechanism for checking CPU features at runtime
to select the assembler-optimized variants), but if JNI overhead
negates the gains there, then I'd agree that sticking to pure Java
code here would be optimal.

On Sun, 28 Feb 2021 at 17:18, sebb <seb...@gmail.com> wrote:
>
> On Sun, 28 Feb 2021 at 20:14, Matt Sicker <boa...@gmail.com> wrote:
> >
> > I'd also be interested in benchmarking comparisons as I've been
> > working on a proof of concept using Blake3 to do similarly (I have a
> > pure Java implementation and a JNI version that ultimately invokes the
> > reference C implementation, though I've also wondered about linking
> > the reference Rust implementation). The potential advantage to linking
> > in the native implementations here would be in taking advantage of
> > CPU-specific extensions like SSE, AVX, NEON, etc., which aren't
> > accessible from the JVM without JNI or other patches to the JDK
> > itself. If the overhead turns out to be non-negligible, then we should
> > probably keep the native code bindings to commons-crypto while porting
> > pure Java implementations to commons-codec.
>
> Of course the disadvantage is that the code is not portable.
> Also each OS version will need separate testing and makes releasing
> binaries harder.
> This is an issue we have already faced with Crypto.
> And there will be versions of Java for which it will not work.
>
> So unless the is a great performance improvement, I don't think it's
> worth the extra overheads.
>
> > On Sun, 28 Feb 2021 at 09:25, Bernd Eckenfels <e...@zusammenkunft.net> 
> > wrote:
> > >
> > > ... and also do benchmarking early, the native interface overhead might 
> > > be a problem so that pure java (intrinsic) code is much faster
> > >
> > >
> > > --
> > > http://bernd.eckenfels.net
> > > ________________________________
> > > Von: Gary Gregory <garydgreg...@gmail.com>
> > > Gesendet: Sunday, February 28, 2021 2:45:26 PM
> > > An: Commons Developers List <dev@commons.apache.org>
> > > Betreff: Re: [crypto] Interest in adding support for cryptographic hash 
> > > function?
> > >
> > > That sounds reasonable to me. I think once we see a PR, we'll get a better
> > > idea. Start small IMO.
> > >
> > > Gary
> > >
> > >
> > > On Sat, Feb 27, 2021, 13:51 Alex Remily <alex.rem...@gmail.com> wrote:
> > >
> > > > I'd be exposing additional elements of the OpenSSL API via additions to 
> > > > the
> > > > commons crypto API.  Since I wouldn't be adding any additional
> > > > dependencies, I would expect that licensing and portability would remain
> > > > unchanged.  Would it not?
> > > >
> > > > Thanks,
> > > >
> > > > Alex
> > > >
> > > > On Sat, Feb 27, 2021 at 1:08 PM Gilles Sadowski <gillese...@gmail.com>
> > > > wrote:
> > > >
> > > > > Le sam. 27 févr. 2021 à 19:00, Bernd Eckenfels
> > > > > <e...@zusammenkunft.net> a écrit :
> > > > > >
> > > > > > Hello,
> > > > > >
> > > > > > I don’t think it’s a Good idea to introduce native dependencies to
> > > > > formerly pure Java projects.
> > > > >
> > > > > +1
> > > > > [I thought that the idea was a (pure) Java implementation.]
> > > > >
> > > > > > So i think native optimized hash implementations would fit better in
> > > > > commons-crypto. So I would say go for it, keep in mind license 
> > > > > clearance
> > > > > and portability.
> > > > > >
> > > > > > Gruß
> > > > > > Bernd
> > > > > >
> > > > > > > [...]
> > > > >
> > > > > ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > > > > For additional commands, e-mail: dev-h...@commons.apache.org
> > > > >
> > > > >
> > > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > For additional commands, e-mail: dev-h...@commons.apache.org
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to