J Forum
I joined an online conference called J Forum which explored the current state of Java ecosystem, ahead of this September's release of Java 19. Here are some takeaways:
- Garbage Collector Ergonomics. There are several GC selections for various situations. Here are the recommendations:
- Serial: single core, smal heaps
- Parallel: multi-core small heaps; batch jobs with any heap size
- G1: responsive in medium to large heaps (request-response/DB interactions); only when processors 2+ and memory 1728MB+
- Z: responsive in medium to large heaps (request-response/DB interactions); JDK 17+; Pause < 1ms
- Shenandoah: responsive in medium to large heaps (request-response/DB interactions); JDK 17+; Pause <10ms
- GC Tuning does not only rely on setting heap size (-Xmx for well-sized workloads, -XX:MaxRAMPercentage for workloads to be scaled along container memory limits, -XX:ActiveProcessorCount), but also understanding the workload. You should select appropriate GC and have enough CPUs (check Runtime.getRuntime().availableProcessors() and -XX:+PrintFlagsFinal)
- Analyze VM data with JDK Flight Recorder (JFR)
- Contract Testing for testing an integration point by checking each application in isolation to ensure the messages it sends or receives conform to a shared understanding that is documented in a "contract".
- Introduction to JCP
- References:
Comments