Embark on a deep dive into the intricate world of CPU architecture, memory models, and JVM intrinsics through the lens of high-level functional abstractions in this 59-minute conference talk. Follow Daniel Spiewak's journey as he unravels the most complex and mind-bending bug hunt of his career, exploring platform-specific, processor-specific, and even architecture-version-specific implementations. Discover the challenges of tracking down nondeterministic bugs in Scala-based implementations that only manifest on certain hardware. Gain insights into topics such as fibers, fiber implementation, cancel actions, memory access, volatile variables, ARM architecture, CISC vs. RISC, Cats Effect, race conditions, and the intricacies of compare-and-set operations. Learn about the stages of grief in debugging, performance considerations, and the complexities of cancellation actions. Conclude with a comparison of Go and Rust, and understand why performance is not a one-size-fits-all solution in the realm of JVM optimization.
Read more
Journey to the Centre of the JVM - Exploring CPU Architecture and Memory Models