What is ZPE Native?
ZPE Native is a new (first built in August 2022) distribution of ZPE that has been made available to download.
ZPE Native is a native build for each operating system and platform. By being a native image it is no longer a cross-platform binary but offers higher performance than can be achieved with the Java Runtime Environment based ZPE.
The following videos show the difference between the Java and native versions in terms of performance. They both show the Java version first then move to the native version.
This video shows the performance difference when carrying out a loop
(for ($i = 0 to 100000)) { print($i) }
) in YASS:
ZPE performs considerable better when running the native build, but some features are not available in the native version as of yet. For example, all of the sound features are currently unavailable.
Another example, the ZPE Standard Library compiles and runs in 13ms on the native build versus 97ms with the Java version.
Both the Java version and the ZPE Native version compile the standard library's 700 lines almost instantly due to a high-performance parser and compiler, but when they are running it the difference between the two is around about 50ms. However, the CPU time is much lower on the Native version.
How do I download ZPE Native?
ZPE Native is currently only available in aarch64 for macOS - this is because I am a Mac user who uses an M1 Macbook Pro. I do of course have a Windows x86-64 machine, a Linux x86-64 machine and a Windows x86 machine available and I am planning on compiling native versions for their operating systems (general rule of compilation, you need to compile on the platform it is to run on).
ZPE Native is available in aarch64 from my Downloads Center on my website. I have configured my script to compile ZPE Native so that it is uploaded immediately after compilation is finished, so it remains up to date with the JRE version.
You can use GraalVM's native-image to compile the JAR into a native image if you want the best performance.