Micro-experimentation Tools in Java 9
This course covers Java 9 tools JShell and JMH, designed to restore a Java engineer's flow by making it easy to explore your code base, experiment with solutions at a small scale, and roll the results into long-lasting applications with confidence.
What you'll learn
Historically, Java engineers have been loathe to do small scale experiments during their coding because of the high ceremony of the Java language. There is so much overhead when all an engineer wants to write is a little one-line experiment that its often avoided. At the core, the JVM is so good at code optimization that experiments in the performance family are still more time consuming because of the immense number of false positives and noisy evidence that result. In this course, Micro-experimentation Tools in Java 9, you'll learn how to use JShell and JMH. First, you'll learn how to do more in-depth experimenting. Next, you’ll discover more about exploratory coding. Finally, you’ll explore how to find if your feedback loop is too slow for significant processes. When you’re finished with this course, you'll have a foundational knowledge of JShell and JMH that will help you as you move forward in restoring flow while using Java 9 micro-experimentation tools.
Table of contents
- JShell Architectural Overview 2m
- 6x Hello, World 3m
- Under the Hood of Running a JShell Snippet 2m
- Using Forward Reference and Wrapping with Expressions, Variables 3m
- Using Forward Reference and Wrapping with Methods 2m
- Using Forward Reference and Wrapping with Types 1m
- Navigating in JShell 3m
- Reviewing and Re-running Snippets 3m
- Editing Snippets 2m
- Saving Snippets 1m
- Dropping Snippets 1m
- Customizing JShell Startup 4m
- Customizing the JShell Envionment: Modes 3m
- Customizing the JShell Envionment: Prompt 2m
- Customizing the JShell Environment: Truncation 1m
- Beyond Prototyping 4m
- Customizing the JShell Environment: Format 4m
- Adding Libraries to the Classpath 2m
- Adding Libraries to the Modulepath 3m
- Putting It All Together: The isAncestor Feature 1m
- Exposing the Lies in Your Benchmarks 3m
- De-optimizing the JVM 3m
- JMH Architectural Overview 3m
- Translating Broken Benchmarks into JMH 3m
- Using Baselines in Benchmarks 2m
- Configuring Measurement 3m
- Configuring State 5m
- Benchmarking Using Blackholes 2m
- A Parallelization Testing Teaser 1m
- Testing Groups of Benchmarks 3m
- Some Other Handy Controls 5m