GOTO is a vendor independent international software development conference with more that 90 top speaker and 1300 attendees. The conference cover topics such as .Net, Java, Open Source, Agile, Architecture and Design, Web, Cloud, New Languages and Processes
Gil Tene, TweetCTO and Co-founder, Azul Systems
Biography: Gil Tene
Gil Tene is CTO and co-founder of Azul Systems. He has been involved with virtual machine and runtime technologies for the past 25 years. His pet focus areas include system responsiveness and latency behavior. Gil is a frequent speaker at technology conferences worldwide, and an official JavaOne Rock Star. He pioneered the Continuously Concurrent Compacting Collector (C4) that powers Azul's continuously reactive Java platforms. In past lives, he also designed and built operating systems, network switches, firewalls, and laser based mosquito interception systems.
Twitter: @giltene
Presentation: TweetFaster Java Objects
This session introduces org.ObjectLayout and StructuredArray, a new Java collection library and an array class designed specifically to enable JVMs to optimize memory layout for arrays of objects in a way that closely matches the performance behaviours of arrays of structs in C. org.ObjectLayout works on any JDK (version 6.0 and above), but when “intrinsified” in newer JDKs, it brings dead-reckoning and streaming speed to what is in essence an array of Java objects.
The presentation covers the APIs and design considerations behind them and explains the fundamentals behind logic that can allow Java JDKs to match C on data structure access speeds.
Presentation: TweetLow Latency Java in the real world: LMAX Exchange and the Zing JVM
Abstract: LMAX Exchange and Azul are both known for low latency and high performance Java technologies. LMAX Exchange has been using Azul's Zing JVM to power the world's best FX execution venue for a while now. This session describes some of the core parts of the relevant technology stacks, and discuss experiences and lessons learned from a long-term real-world deployment of their combination.
Workshop: Understanding Latency & Application Responsiveness: Characterization and specific considerations in Java environments Tweet
Managing, monitoring, and improving application responsiveness is a common need for many software professionals. Whether you develop Java applications or manage them, understanding application responsiveness and the major mechanisms that affect it is key to achieving successful applications and happy users. In this workshop, Gil Tene (CTO, Azul Systems) will provide a an in-depth overview of Latency and Response Time Characterization, including proven methodologies for measuring, reporting, and investigating latencies, and and overview of some common pitfalls encountered (far too often) in the field. While most of this discussion will apply to all application environments, some specific considerations in Java based environments will be covered as part of this workshop.
Our discussion will include an exploration of of the common needs and motivations for understanding the behavior of application response time and latency, and ways to successfully capture these descriptions and relate them to business needs. However, even good characterization of bad data is useless. If measurements of response time present false or misleading latency information, even the best analysis can lead to wrong operational decisions and poor application experience. Gil will demonstrate and discusses some common pitfalls, false assumptions and problematic measurement techniques that lead to dramatically incorrect reporting results, and will explain how these false measurements naturally occur using the most common measurement methods and tools in use today. We will discuss the coordinated data omission problem, and ways to work around it, and will introduce and demonstrate how simple and recently open sourced tools can be used to improve and gain higher confidence in both latency measurement and reporting.
Since Garbage Collection is an integral part of application behavior on Java platforms, and is often dominantly responsible for application responsiveness and latency behavior. As such, it is critically important for Java developers and application managers to understand the basic workings of garbage collectors so that they can better gauge application architecture choices and the actions they can take in selecting and tuning collector mechanisms. Gil will review and classify the various garbage collectors and collection techniques available in JVMs today, and provide an overview of common garbage collection techniques including generational, parallel, stop-the-world, incremental, concurrent and mostly-concurrent algorithms. We will define terms and metrics common to all collectors, and classify each major JVM collector's mechanisms and characteristics and discuss the tradeoffs involved in balancing requirements for responsiveness, throughput, space, and available memory across varying scale levels. We will include an interactive discussion of how these tradeoffs play off in the real world, and discuss ways to minimize or completely eliminate application responsiveness and latency impacts from Garbage Collection.