Hello, I hope everything is well with you.
Due to other commitments this work has stalled. I was planning to implement: - fast to string conversion - fast string parsing - fast formatting - fast search - fast sort - fast templating - fast buffers The code I have done so far is here: https://github.com/sirinath/moby Wondering if someone can take this forward until I have more time in my hand. Suminda On Sat, 6 Feb 2021 at 09:50, Suminda Sirinath Salpitikorala Dharmasena < sirinath19...@gmail.com> wrote: > Hello, > > I am working on a port of DragonBox to Java. If there is interest in > contributing this is most welcome. > > Suminda > > On Fri, 5 Feb 2021 at 21:51, Raffaello Giulietti < > raffaello.giulie...@gmail.com> wrote: > >> Hello, >> >> as a reminder, a Java implementation of Schubfach [1] intended to >> replace the current slow and expensive OpenJDK (Double|Float)::toString >> algorithm has been discussed, presented and contributed to this mailing >> list in several posts. The last implementation is available in pre-Skara >> webrev form, as referenced in [2]. On my laptop hardware, the speedup >> factor is 17.7x wrt OpenJDK. >> >> >> >> Recently, Alexander Bolz translated Schubfach to C++ for the purpose of >> comparing the performance of several bin2dec floating-point numbers >> algorithms [3]. >> >> In the meantime, Junekey Jeon implemented and perfected his own >> Dragonbox in C++, a new algorithm based on Schubfach [4]. From [5]: "In >> addition to the core idea of Schubfach, Dragonbox utilizes some >> Grisu-like ideas to minimize the number of expensive 128-bit × 64-bit >> multiplications, at the cost of having more branches and >> divisions-by-constants." >> >> In the C++ ecosystem, Schubfach has been the fastest known algorithm >> before being gently pushed aside by Dragonbox, as can be seen in the >> graphs in [3]. >> >> >> >> While developing Schubfach back in 2018, I experimented myself with >> blending core Schubfach with my own earlier algorithm similar to Grisu. >> However, probably due to uncontrollable JIT compilation behavior, I >> could not observe any benefit. On the contrary, I measured performance >> drops probably because of the added complexity, which is public enemy >> nr. 1 for JIT compilers. Therefore, I opted for the simpler current >> design that seemed more suitable for (the then 2018 version of) C2. >> >> >> >> I hope this can somehow revive this community's interest and confidence >> toward Schubfach to definitely supplant the current expensive >> (Double|Float)::toString algorithm. >> >> >> Greetings >> Raffaello >> >> ---- >> >> [1] https://drive.google.com/open?id=1luHhyQF9zKlM8yJ1nebU0OgVYhfC6CBN >> [2] >> >> https://mail.openjdk.java.net/pipermail/core-libs-dev/2020-March/065297.html >> [3] https://github.com/abolz/Drachennest >> [4] https://github.com/jk-jeon/dragonbox >> [5] >> https://github.com/jk-jeon/dragonbox/blob/master/other_files/Dragonbox.pdf >> >