Asynchronous programming is a popular choice for high-scale systems, but it often comes with a hidden performance cost. This talk will present a study of the performance characteristics of the asynchronous programming solutions on the JVM and the benefits that their abstractions provide to the user. Based on this study, the talk will present detailed report of the techniques and tools used to build the new the trane.io library, a high-performance Future implementation, and how they were recently applied to optimize Twitter's Future. It will include an overview of high-level and low-level profiling tools, JIT optimizations, and micro-benchmarking.