DevRoom Proposal: MappedByteBuffer Operations SpeedUp of 150x
Hi, I'd like to give a presentation in the Java Developer Room next year at FOSDEM. I've put together a proposal below based on the template at [1]. Title: MappedByteBuffer.hurray()! Abstract: This patchset [2], currently implemented as a proof of concept using JamVM and GNU Classpath, enables 1) the JVM to mmap special files (i.e. those in /dev) - something no other VM can do AFAIK 2) a true, direct, MappedByteBuffer from any mapping or pointer in the CRT 3) provides a safe, memory-managed Java backing array, via MappedByteBuffer.array() 4) speeds up MappedByteBuffer I/O by factor of up to 150 times!! In human terms, it lets me draw to the FB using pure Java :-) Since originally posting my patchset, I have made a few changes including removing the custom JNI calls in favour of using sun.misc.Unsafe API. * If possible describe why Free Java is helpful or perhaps even essential to your project. This would have been practically impossible to do with a closed-source JVM and class library. JamVM and GNU Classpath have been open source for as long as I've known, and that's enabled me to become familiar enough with the source to make it do whatever I needed in various embedded environments. * What the audience will learn from the talk. I will provide a fairly minimal VMWare image so that the audience can easily download the VM, modify some Java code, and draw whatever demo's they would like to to the FB - using pure Java! My forks are up on github [3,4] * How can people help out with the project, what feedback are you looking for? I would like to have some feedback about the patchset to get it in good enough shape for acceptance to GNU Classpath and JamVM. I would like to entice some other tinkerers to port the changes to OpenJDK as well, and would like to get some feedback about possibly using JNA in combination with my /dev/fb and /dev/event classes. Lastly, I would very much like to open up the discussion about forming a performance-optimization group. Recording me on audio and/or video: YES (acceptable) Brief Bio: Currently, Christopher Friedt is Principal Embedded Firmware Engineer at MMB Networks. He has been hacking Linux for about 15 years and embedded Java for about 10. He has worked in the areas of industrial and consumer radio, mobile radio, embedded electronics, and signal processing since 2006 when he first laid his hands on a v4T ARM. You can find him hash-tagging various things on Google+ most frequently these days. Microblog URL: plus.google.com/+ChristopherFriedt Blog URL: perpetual-notion.blogspot.com [1] http://wiki.debian.org/Java/DevJam/2015/Fosdem/CallForParticipation [2] https://plus.google.com/+ChristopherFriedt/posts/N4eVKvn2oL4 [3] https://github.com/cfriedt/jamvm ( [4] https://github.com/cfriedt/classpath
On Sat, Nov 1, 2014 at 10:50 AM, Christopher Friedt <chrisfriedt@gmail.com> wrote:
Title: MappedByteBuffer.hurray()!
https://github.com/cfriedt/jamvm https://github.com/cfriedt/classpath My forks for jamvm / classpath, branch use-sun-misc-unsafe-for-pointer-arrays, now include additions in .ac and .am for "--enable-vm-flexarray", which is disabled by default. Furthermore, switching to the Unsafe API has actually doubled my framerate in a simple FB test. http://goo.gl/UH9hoo
participants (1)
-
Christopher Friedt