You are viewing content from a past/completed QCon -

Track: Performance Mythbusting

Location: Bayview AB

Day of week:

Real world, applied performance proofs across stacks. Hear performance consideratiosn for .NET, Python, & Java. Learn performance use cases with OpenJ9, Instagram, and Netflix. 

Track Host: Monica Beckwith

Java Champion, First Lego League Coach, passionate about JVM Performance @Microsoft

Java Champion Monica Beckwith is considered a subject matter expert, has several published articles and gets regular invitations to give talks on JVM/JIT Compilation/Garbage Collection (GC). She is also a JavaOne Rock Star.

Monica has made various performance contributions to the Java HotSpot VM by identifying the need for a NUMA-aware allocator and allocation patterns, reduction of redundant instructions, reduction of the Java object header, prefetching patterns, redundant array checks in a loop and various other optimizations for the JIT compiler, the generated code, the JVM heuristics and garbage collection and collectors.

Prior to joining Microsoft, Monica was the JVM Performance Architect at Arm. Her past also includes leading Oracle’s Garbage First Garbage Collector performance team.

Asynchronous API With CompletableFuture

Since Java 8, CompletableFuture has enabled asynchronous, future-based programming in Java and is one of the most powerful features suitable for creating asynchronous APIs. This presentation, based on real project experience, goes beyond the CompletableFuture public API. It reveals internal details and shows who stands to benefit from it for better performance.

Sergey Kuksenko, Java Performance Engineer @Oracle

You Can Build a World-Class Search Engine in .NET

Microsoft's online services, especially Bing, are some of most important proving grounds for running .Net in large-scale, highly available systems. The platform that underlies Bing also runs significant online functionality for Cortana, Office, Xbox, Windows and more.

When deciding how to build core infrastructure for the next version of Microsoft's query serving platform, we had to make a number of hard choices. First and foremost? Whether to use .Net or stick with C++.

This talk will discuss the ramifications of choosing .Net, why it was the right choice for us, and how much we had to learn about writing high-performance, high-availability software on this platform. We'll also hear about some of the myths we busted along the way, and why understanding them will help you apply these principles in your own software.

Ben Watson , Principal Software Engineer @Microsoft focused on High-Performance .NET

Understanding Python Memory at Instagram

Instagram server is one of the biggest Python deployments in the world to support more than 700M active users. At Instagram, the computing parallelism is based on multi-processing instead of threading. Memory utilization becomes critical in such model, i.e., with less memory per process, we are able to improve the parallelism hence overall capacity. In this talk, we will start with how Python memory profiling is done at Instagram, what useful insights we got from memory profiling data, and how such insights turned into efficiency wins for Instagram servers. We are also going to share our learnings from tuning and improving Python memory garbage collection.

Min Ni, Engineering Manager @Instagram

Performance Mythbusting Panel

Monica Beckwith, Java Champion, First Lego League Coach, passionate about JVM Performance @Microsoft
Sergey Kuksenko, Java Performance Engineer @Oracle
Ben Watson , Principal Software Engineer @Microsoft focused on High-Performance .NET
Min Ni, Engineering Manager @Instagram
Ioannis Papapanagiotou, Senior Software Engineer @Netflix
Vinay Chella, Cloud Data Architect @Netflix

NDBench: Benchmarking Microservices at Scale

Netflix runs thousands of microservices to serve more than 100M users everyday. These services are backed by large fleet of data store instances running on the public cloud. It is nearly impossible to predict the traffic patterns imposed by our architecture upon our data stores. We needed a framework that would help us determine the behavior of our platform systems under various workloads. We wanted to be mindful of provisioning our clusters, scaling them either horizontally (by adding nodes) or vertically (by upgrading the instance types), and operating under a variety of conditions, such as node failures, network partitions, etc.

To address those complexities we designed a benchmarking system for Netflix's Cloud platform that can mimic the performance of production use cases. By integrating dynamic configuration management, middle-tier load balancing, and metrics, we can study the effect of different workload parameters. This helped us identify potential memory leaks and garbage collection issues. In addition it allowed us to test the impact of long running maintenance jobs such as database repairs or reconciliation. We are going to showcase how the deployment, management, and monitoring of multiple instances can be done from a single entry-point (UI). We finally going to show how we integrated a benchmarking tool into our release lifecycle.

Ioannis Papapanagiotou, Senior Software Engineer @Netflix
Vinay Chella, Cloud Data Architect @Netflix

Performance Beyond Throughput:An OpenJ9 Case Study

Curious about Java application and JVM performance and how they are continuing to evolve? Come to this talk to learn more about exciting results and new advancements in the area of JVM performance using the latest open source JVM technology at Eclipse OpenJ9 running with OpenJDK! We'll talk about new performance boosts across a wide variety of applications and present results using different workloads and metrics to give you a fuller picture of what to expect from OpenJ9. We will also explore some common low-level Java performance problems and show how to look for these issues in an application. Low-level performance bottlenecks can be more challenging to diagnose since they can arise either from the OS kernel or from performance critical parts of the JVM such as the garbage collector (GC) or the just-in-time compiler (JIT). Rather than focusing on any single monitoring tool, we will explain the data you need to gather and provide you some examples of how to do so using system commands and profiling tools (like Linux Perf) as well as explaining different JVM tracing and logging capabilities. The view from “the bottom of the stack” can help in finding and fixing some stubborn performance problems often missed by high-level performance analysis tools.

Marius Pirvu, Advisory Software Developer @IBM

Last Year's Tracks

  • Monday, 16 November

  • Clientside: From WASM to Browser Applications

    Dive into some of the technologies that can be leveraged to ultimately deliver a more impactful interaction between the user and client.

  • Languages of Infra

    More than just Infrastructure as a Service, today we have libraries, languages, and platforms that help us define our infra. Languages of Infra explore languages and libraries being used today to build modern cloud native architectures.

  • Mechanical Sympathy: The Software/Hardware Divide

    Understanding the Hardware Makes You a Better Developer

  • Paths to Production: Deployment Pipelines as a Competitive Advantage

    Deployment pipelines allow us to push to production at ever increasing volume. Paths to production looks at how some of software's most well known shops continuous deliver code.

  • Java, The Platform

    Mobile, Micro, Modular: The platform continues to evolve and change. Discover how the platform continues to drive us forward.

  • Security for Engineers

    How to build secure, yet usable, systems from the engineer's perspective.

  • Tuesday, 17 November

  • Modern Data Engineering

    The innovations necessary to build towards a fully automated decentralized data warehouse.

  • Machine Learning for the Software Engineer

    AI and machine learning are more approachable than ever. Discover how ML, deep learning, and other modern approaches are being used in practice by Software Engineers.

  • Inclusion & Diversity in Tech

    The road map to an inclusive and diverse tech organization. *Diversity & Inclusion defined as the inclusion of all individuals in an within tech, regardless of gender, religion, ethnicity, race, age, sexual orientation, and physical or mental fitness.

  • Architectures You've Always Wondered About

    How do they do it? In QCon's marquee Architectures track, we learn what it takes to operate at large scale from well-known names in our industry. You will take away hard-earned architectural lessons on scalability, reliability, throughput, and performance.

  • Architecting for Confidence: Building Resilient Systems

    Your system will fail. Build systems with the confidence to know when they do and you won’t.

  • Remotely Productive: Remote Teams & Software

    More and more companies are moving to remote work. How do you build, work on, and lead teams remotely?

  • Wednesday, 18 November

  • Operating Microservices

    Building and operating distributed systems is hard, and microservices are no different. Learn strategies for not just building a service but operating them at scale.

  • Distributed Systems for Developers

    Computer science in practice. An applied track that fuses together the human side of computer science with the technical choices that are made along the way

  • The Future of APIs

    Web-based API continue to evolve. The track provides the what, how, and why of future APIs, including GraphQL, Backend for Frontend, gRPC, & ReST

  • Resurgence of Functional Programming

    What was once a paradigm shift in how we thought of programming languages is now main stream in nearly all modern languages. Hear how software shops are infusing concepts like pure functions and immutablity into their architectures and design choices.

  • Social Responsibility: Implications of Building Modern Software

    Software has an ever increasing impact on individuals and society. Understanding these implications helps build software that works for all users

  • Non-Technical Skills for Technical Folks

    To be an effective engineer, requires more than great coding skills. Learn the subtle arts of the tech lead, including empathy, communication, and organization.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.