High Performance Managed Languages • Martin Thompson • YOW! 2017
Вставка
- Опубліковано 11 вер 2024
- This presentation was recorded at YOW! 2017. #GOTOcon #YOW
yowcon.com
Martin Thompson - High-Performance Computing Specialist, Java Champion with 25+ Years of Experience
RESOURCES
aeron.io
github.com/rea...
Martin
mechanical-sym...
/ mjpt777
github.com/mjp...
/ martinjthompson
ABSTRACT
Common wisdom dictates that native languages are the only means of building high-performance applications. How do managed runtimes such as those available to .NET, Java, and even JavaScript, yes even JavaScript compare?
Many applications requiring high-performance are now developed for managed runtimes - such as financial trading, data stores and analytics, messaging processing, and even supercomputing. Over the last few decades we have seen significant advances in managed runtimes, particularly for JIT compilers and garbage collectors.
In this talk we will explore how our #ManagedRuntimes can equal, and even better in some cases, the performance of native languages.
RECOMMENDED BOOKS
Sourav Ghosh • Building Low Latency Applications with C++ • amzn.to/3szwUhV
Steve Scargall • Programming Persistent Memory • amzn.to/3Pk79ex
/ gotocon
/ goto-
/ gotoconferences
#LowLatency #FinTech #ContinuousDelivery #HighAvailability #Aeron #NFR #MTBF #MTTR #RTO #RPO #FaultTolerance #Async #MartinThompson #YOWcon
Looking for a unique learning experience?
Attend the next GOTO conference near you! Get your ticket at gotopia.tech
Sign up for updates and specials at gotopia.tech/n...
SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily.
www.youtube.co...
We are currently releasing older YOW! videos to serve as a valuable archive, preserving historical content. It is possible that a video is perceived as outdated. We believe it offers insightful glimpses into the past, enriching our understanding of history and development.
The bit about polymorphism was interesting because that's how Rust does things but at compile time. Generics always get monomorphized.
It is clear to me that JITs have a lot of benefits for squeezing out extra performance at runtime, but these managed runtimes seem to do poorly when it comes to short lived applications. For example, command line applications written in Java tend to be pretty clunky and slow. IMO, the benefit of a compiled language is that you get consistent performance.
Java was not supposed to be used for scripting.
And it's totally fine that it wasn't! What I'm saying is that the performance model does preclude some workloads. It has higher highs because it can do clever stuff on your program, but it doesn't work for every situation (e.g. short lived processes) and can have fragile optimization (e.g., if you have unexpected mixes of subtypes messing with your caching). I don't think it's a problem with java or C#, just something to consider.
It's a problem with runtimes. 😊