Oracle Helidon taps virtual threads for ‘pure performance’

Oracle Helidon taps virtual threads for ‘pure performance’

Oracle’s Helidon, a set of Java libraries for developing cloud-native microservices, is set to improve performance via virtual threads with the planned 4.00 version.

Currently in an alpha state of development, Helidon 4.0.0 introduces Nima, a web server based on virtual threads, which are JVM-managed lightweight threads that can improve scalability. Virtual threads, previewed in both this week’s Java Development Kit (JDK) 20 and last September’s JDK 19, also are intended to significantly reduce the effort needed to write and maintain high-throughput concurrent applications.

Developers can access the Helidon 4.0.0 alpha release via GitHub; instructions on getting started with Helidon be found at helidon.io. Nima supports MicroProfile 5.0 and replaces the Netty NIO client-server framework that previously powered the web core of Helidon. Nima and virtual threads, which have been described as offering “pure performance with no cheating,” are intended to provide a low-overhead, concurrent server while maintaining a blocking thread model. This makes it easier to do reactive programming.

Helidon 4.0.0, as a major release, also has some backward-incompatible API changes, according to recent release notes. Java 19 or higher is required to use the alpha 5 version of Helidon. The project will support Java 20 soon and Java 21 by year-end.

Helidon supports two programming models: Helidon ME, which is a MicroProfile microservices implementation with a declarative style and dependency injection, and Helidon SE, which is a microframework model with a small footprint and functional style API. The latest production release of Helidon is version 3.2.0.

Copyright © 2023 IDG Communications, Inc.

How to choose a low-code development platform
<!-- var slotName = 'bottomleaderboard'; var slotSize = []; if ($thm.deviceClass == 'mobile') { slotSize = [[300,50],[320,50],[300,250]]; } else if ($thm.deviceClass == 'tablet') { slotSize = [[728,90],[468,60]]; } else { slotSize = [[728,90],[970,90],[970,250]]; } IDG.GPT.addDisplayedAd(slotName, "true"); document.write('

'); IDG.GPT.defineGoogleTagSlot(slotName, slotSize, false, true); document.write('

'); $('#' + slotName).responsiveAd({screenSize:'971 1115', scriptTags: []}, true); //-->

Add a Comment