JavaFX In Action #16 with Chris Newland about DemoFX and JitWatch
Chris Newland has a long history in Java and JavaFX development. I invited him to talk about two of his JavaFX projects: DemoFX and JITWatch. While the demos are already impressive, Chris also gives a “crash course” in this video about Java and Byte code and how the Just-In-Time compiler converts these to native code in the Java Virtual Machine.
About Chris
Chris Newland is a FinTech Java developer, Java Champion, and creator of open-source JVM tools, including JITWatch. He regularly speaks at conferences and is a published author on Java performance techniques.
You can find him on LinkedIn, Mastodon, and his videos on YouTube.
About DemoFx
DemoFX is a performance test platform for JavaFX. It can layer and schedule effects on a timeline. It is used to discover the best techniques to optimize JavaFX performance on the Raspberry Pi and Desktop.
DemoFX contains a long list of effects: blur, bobs, bounce, burst, checkerboard, chord, chromakey, cogs, colourbackground, concentric, credits, creditssprite, cubefield, cyclebackground, diamonds, doomfire, equaliser, equalisercubes, falling, feedback, fireworks, flash, fractalrings, glowboard, grid, hexagons, honeycomb, hue, imagebackground, inversechromakey, mandala, mandelbrot, mask, maskstack, mirrorx, mirrory, moire, moremoire, pentagons, picinpic, quadplay, rain, rainbow, rawplayer, raytrace, rings, rotations, sea, sheet, shift, sierpinski, sinelines, snowfieldsprite, spin, sprite3d, spritewave, squares, starfield, starfieldsprite, stars, texcube, texsphere, textbounce, textlabel, textlayers, textring, textwave, textwavesprite, tiles, triangles, tubestack, tunnel, twister, typetext, vumeter, wordsearch.
Links
- Sources on GitHub
- YouTube: DemoFX Part I - JavaFX inspired by the demoscene
- YouTube: DemoFX Part II - JavaFX inspired by the demoscene
- YouTube: DemoFX Part III - JavaFX inspired by the demoscene
- YouTube: Fractal Rings in JavaFX
About JITWatch
JITWatch is a log analyser and visualiser for the HotSpot JIT compiler. It helps you to inspect inlining decisions, hot methods, bytecode, and assembly. You can view the results in a JavaFX user interface.
Links
- Sources on GitHub
- YouTube: London Java Community: Understanding HotSpot JVM Performance with JITWatch
- JetBrains Platform Blog: JITWatch4i, Analyzing IntelliJ IDEA’s Startup
Video content
00:00 Who is Chris?
02:20 Demo of DemoFX
03:32 Shaders are coming in JavaFX 25
04:17 More demos included in DemoFX
05:02 Intro to JitWatch: How Java byte code gets compiled to native code
06:55 Demo of JitWatch
08:38 How JetBrains want to integrate JitWatch
09:21 Understanding how Java code gets executed
12:07 Alternatives like GraalVM and Gluon to build apps
14:17 TooManyPetProjectsException …
YouTube: MelodyMatrix presentation for the JChampions online conference
15:16 More on Chris’ GitHub!
16:24 Future of JavaFX