Implementation of IO with Panama
Pedro Lamarão
pedro.lamarao at prodist.com.br
Mon Apr 19 13:37:38 UTC 2021
Rado,
thanks for this interesting work!
It has inspired me to push my own incomplete experiments with NIO for
Windows.
I have just pushed it to github for your consideration.
win32 = https://github.com/pedrolamarao/sandbox-jvm-windows
nio = https://github.com/pedrolamarao/sandbox-jvm-windows-nio
I hope you will find them useful!
I'm waiting for an opportunity to update them to the new FMA API.
Atte.
Pedro.
Em qui., 15 de abr. de 2021 às 20:40, Radosław Smogura <mail at smogura.eu>
escreveu:
> Hi all,
>
> I hope you have a good day.
>
> I started implementing I/O for JDK using Panama (I could not find such
> project). I think this is natural consequence of Panama project.
>
> Right now, it's done as separate Maven project, which can be found here
> https://github.com/rsmogura/panama-io
>
> Generally, I'm happy it went so smooth.
>
> Well done!
>
> I created CachedAllocator (first version) which will keep memory segments
> cached to avoid calling alloc / free (I did not make performance tests
> between both versions).
>
> I created as well simple benchmarks
> Benchmark Mode Cnt Score Error
> Units
> SocketReadJdk.teatRead4k thrpt 15 1202109.549 ± 127132.855
> ops/s
> SocketReadJdk.testRead16b thrpt 15 2818334.225 ± 82209.971
> ops/s
> SocketReadJdk.testRead8bOffset thrpt 15 2851310.595 ± 20675.631
> ops/s
> SocketReadPosix.teatRead4k thrpt 15 1187974.868 ± 101285.497
> ops/s
> SocketReadPosix.testRead16b thrpt 15 2963827.190 ± 62004.165
> ops/s
> SocketReadPosix.testRead8bOffset thrpt 15 2999631.814 ± 23925.859
> ops/s
>
> From minor things and ideas:
>
> * I could not capture errno using jextract, my script uses
> --include-var errno, but I had ask for this symbol manually
> * Privately I wonder about safety of errno, as between call to Posix
> function and reading value we have JVM, which can meantime invoke Posix
> methods too and make errno dirty (low probability I think)
> * I wonder if we could add class LocalSegmentAllocator which will
> allocate memory segment on stack (I know there are some risks)
>
> If you have any questions, or ideas I'm happy to answer.
>
> and I think with moving forward I can provide quite interesting feedback.
>
> The goal is to make complete rewrite, together with mmap, and async I/O.
>
> Best regards,
> Rado
>
--
Pedro Lamarão
https://www.prodist.com.br
Securing Critical Systems
Tel: +55 11 4380-6585
Antes de imprimir esta mensagem e seus anexos, certifique-se que seja
realmente necessário.
Proteger o meio ambiente é nosso dever.
Before printing this e-mail or attachments, be sure it is necessary.
It is in our hands to protect the environment.
More information about the panama-dev
mailing list