So, it's probably not just aircraft right? Does this apply to all objects, moving and static, hidden map objects etc. ?
Correct, yes, yes and yes, yes.
I used to hit an object limit in some of my epic FMB missions years ago, and I would get a notification in FMB when it happened. I think it applied to any object at all being added, but cannot remember.
That's unrelated.
You have just had too many objects in your FMB mission for the game to handle correctly.
This is solely an FMB issue.
It has nothing in common with the Java Wall.
What about the maps themselves, is are they subject to the quality of the java code or not?
Maps have no Java code and as such, are not subject to the Java Wall issue.
Objects placed on a map have Java Code and could contribute to the Java Wall issue, but if they do, it doesn't matter whether or not any map uses them, let alone whether you load such map.
I notice loading times can be quite different for the maps, or it seems so at least, particularly if they are heavily populated in the FMB.
That's just normal.
It's not related to the Java Wall and it's not even an FMB issue, just normal behaviour.
The bigger the map and/or the more objects on it, the longer it takes for the game to load it.
What about skins, should I limit my skin folder or doesn't it matter?
Doesn't matter at all.
I think it's more to do with what is visible in the field of view
No sorry, that's unrelated to the Java Wall.
The Java Wall is something that happens in the Java Virtual Machine at the time when the game starts up already.
It is solely related to certain factors (you could call it "bad habits") in Java Code and it could happen in any Java Class.
As matters stand, Aircraft contribute the most to the Java Wall issue because their Java Code - the way it has been done for the past decade - was "worst" from a JVM's perspective.
If the Java Wall kicks in, it does so brutally.
It will immediately, dramatically reduce the remaining object memory in the JVM.
When you are right on the edge of it, there might just be enough space left to run simple missions, but medium ones will exceed the remaining space and FPS will drop dramatically.
When you're hitting the Java Wall harder, there will be no space left for your dynamic objects at all, which means the game will constantly run the garbage collector in order to swap out at least enough to keep your objects pop into memory and show them (just to see them getting kicked out by the garbage collector right thereafter). The FPS will be in single digits then.
What we did with our Java Wall fix was to change the Java Code of a few thousand Java Classes in order to get rid of what bugs the JVM the most.
That gives us a save distance from the JVM's limits, enough to hold a few thousand more additional aircraft without hitting that dreaded Java Wall.
Mike