I don’t think you need to go that low level. I find it much easier to optimize around things like memory layout, allocation patterns and cache effects even in Java and C# compared to (essentially) any functional language.
I think this is just a feature of imperative languages over functional ones. Functional languages are excellent for many things, but not for this stuff.
Where should I look to learn about doing those things in Java? Last time I tried looking for guidance I mostly found people saying it's not worth the effort since the JVM JIT will do better.
I think this is just a feature of imperative languages over functional ones. Functional languages are excellent for many things, but not for this stuff.