java runtime performance on BeaglePlay

This might be a personal mental situation, but when i see Oracle, i see Mob, and with License, i see Protection…

Regards,

1 Like

No far from it, it is reality, a/k/a big tech ethos…

@FrankD @RobertCNelson Thank you for the information on openJDK, shows what i don’t know…

1 Like

Do you have a yocto recipe for that so i can light it up (openjdk). Only thing I found was an old java8 something.

@foxsquirrel I know what Yocto is, but that’s where it ends :wink:

What do you need for this? I’ll check with my colleagues if something is available for Yocto with Azul Zulu Builds of OpenJDK…

Just a meta-layer update would be fine.
You might need an entire layer for Azul Zulu

Looking at OpenEmbedded Layer Index - recipes

They have older versions of openJDK already.

My Raspberry Pi Zero 2 W finally arrived. I used the official RPi distro for this board. Specs:

Linux raspberrypi 6.1.21-v7+ #1642 SMP Mon Apr 3 17:20:52 BST 2023 armv7l GNU/Linux
Raspbian GNU/Linux 11 (bullseye)

openjdk 17.0.9 2023-10-17
OpenJDK Runtime Environment (build 17.0.9+9-Raspbian-1deb11u1rpt1)
OpenJDK Client VM (build 17.0.9+9-Raspbian-1deb11u1rpt1, mixed mode, emulated-client)

I did the compile test and results are out…

The Raspberry Pi Zero 2 W pipped the BeaglePlay at the post. Here’s the video…

I thought the results are rather interesting.

  • Both the BeaglePlay and the RPi Zero 2 W have almost the same delay starting. Is this the A53 perhaps?
  • Then parsing the code, BeaglePlay was 105ms while RPi Zero was 120ms.
  • Then with the loading of modules and checking the compile process, RPi Zero took 1442ms and the BeaglePlay took 2225ms.

The curious thing is that when I first compiled my hello world code on the RPi Zero 2, I used the default JDK (Java 11). With Java 11, it also took approx 2225ms to complete the latter process. But when I upgraded to Java 17 it generated almost an 800ms improvement. From what I recollect, this degree of improvement was not seen on the BeaglePlay when I upgraded to Java 17.

Anyway, hope this helps.

Is that on SD or EMMC ?

Sandisk A1 uSD for Raspberry Pi Zero 2 W
eMMC for BeaglePlay

That is interesting.

If they get openjdk on the meta-layer updated to 21 I will have to try it out. I can see some benefits with openjdk, especially now that 6 core SoC are being released. 21 is suppose to have threading, that would most certainly get my interest.

FYI, that’s one of the strenghts of Java, each version brings performance improvements, even without changing the code or the need to recompile your code!

This is only one example:

Java always had threads, but you are probably referring to virtual threads. These became indeed fully available in Java 21. This allows developers to choose between a platform thread and a virtual thread. Each has its advantages, so it should be carefully selected. If you want to read more about this:

Or in this podcast at 17’13:

2 Likes

Thank you for the update.

Will openjdk21 allow the creation of a new process (fork) too?

Sorry, that’s a question I can’t answer…

1 Like

I looked at your blog and see that you are java expert, this is OT and I must apologize to every one for this.
Would you be able to look at netbeans it has some parsing errors. It gets confused during compiling and linking. Change your source code and the source you see on the screen is changed, however the actual compile and link does not reflect that. It will compile and link stale code, then you have to restart it and clear out the cache, after about the 2nd or 3rd time it finally up dates. It is also making a mess with git…

Typically I would move on however this is the best IDE for doing remote builds on multiple boards. When it works it is an EXTREMELY good product.

They want to know the fault trigger, well it is random and I cannot reproduce it on demand so there is not much they can do. It does seem to trigger when the compiler throws an error, that error is hidden and it shows a successful build when it is actually the old code.

It seems like it needs the cache entirely disabled, I have not found any settings to do that. It does build from the apache source. Any suggestions on this?

Hi, yes I’m a Java expert, if you mean I like to use it, write about it, and follow the evolutions, :wink: But the Java-world is big and it’s impossible to be an expert in everything :slight_smile:

As I understand, you already filed a bug or was in contact with Netbeans? My suggestion would be to find a way to simulate your problem so it’s clear what is causing it so it can be further investigated. But I understand you also tried this already?

@foxsquirrel Geertjan Wielenga, one of the Netbean members can be reached on the Foojay Slack (= Friends Of OpenJDK) → Slack

1 Like

Thank you for that, without a clearly defined trigger I could not fulfill the bug reporting requirements so nothing has been filed. I will reach out to Geertjan Wielenga and see how to log or catch it when it is doing it.