Java Performance

סוג הפעילות

מפגש

מועד הפעילות

07/06/17

מקום הפעילות

בית חיל האוויר , הרצליהמפה מצורפת

מרצים

גיל טנא

סדר היום:

13:45-14:00

התכנסות ודברי פתיחה

14:00-15:30

"Java at speed: getting the most out of modern hardware"

Getting the most of your Java applications can be an interesting challenge. Understanding some optimizations that the latest crop of JVMs are able to apply when running on the latest servers may help with that.

This talk will discuss some of those features and optimizations. Along with discussing some JIT compiler capabilities & issues around the black art of micro-bechmarking, we will take a look at the evolution of Inte-based server platforms, quickly traversing through features that were introduced across the past few years, from Nehalem [55xx], through Broadwell [E-26xx v4] and beyond.

We'll highlight the some of the coolest capabilities, discuss new sets of instructions (like AVX2, BMI2, TSX, HLE), pipeline improvements, and core counts and topologies.

We will then demonstrate some examples of JVM JITs using these capabilities where available, as they adapt the code they generate to the specific processor types they run on.

15:30-15:45

הפסקת קפה

15:45-17:00

"Advancements in Java GC. And

thoughts on Application Responsiveness”

Application responsiveness is key for user and developer happiness alike.

This talk will discuss practical ways to rationalize & characterize application responsiveness, including examples (& counter examples) for monitoring, testing, and sizing for good system behavior. In Java environments, application responsiveness is inseparably linked to Garbage Collection behavior. As such, understanding the current landscape and choices in Garbage Collection behavior is key to shaping application responsiveness.

In this session, Gil will review and classify the various garbage collectors and collection techniques available in JVMs today. Following a quick 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. We will 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 conclude with some pitfalls, common misconceptions, and "myths" around application responsiveness and garbage collection behavior, as well as examples of how some good choices can result in impressive application behavior.

בברכה

משה סלם - מנכ"ל אילטם
שלומית מורד - מרכזת תחום תוכנה באילטם

קישורים רלוונטיים

שאל את המומחה