Read Java Performance: The Definitive Guide by Scott Oaks Online


The world of Java performance has shifted significantly in the past ten years. Multicore machines and 64-bit operating systems are now standard even for casual users, and Java itself has introduced new features to manage applications. The base JVM has kept pace with those developments and offers a very different performance profile in its current versions. By guiding you tThe world of Java performance has shifted significantly in the past ten years. Multicore machines and 64-bit operating systems are now standard even for casual users, and Java itself has introduced new features to manage applications. The base JVM has kept pace with those developments and offers a very different performance profile in its current versions. By guiding you through this changing landscape, Java Performance: The Definitive Guide helps you gain the best performance from your Java applications.You’ll explore JVM features that traditionally affected performance—including the just-in-time compiler, garbage collection, and language features—before diving in to aspects of Java 7 and 8 designed for maximum performance in today's applications. You’ll learn features such as the G1 garbage collector to maximize your application’s throughput without causing it to pause, and the Java Flight Recorder, which enables you to see application performance details without the need for separate, specialized profiling tools.Whether you’re new to Java and need to understand the basics of tuning the JVM, or a seasoned developer looking to eek out that last 10% of application performance, this is the book you want....

Title : Java Performance: The Definitive Guide
Author :
Rating :
ISBN : 9781449358440
Format Type : ebook
Number of Pages : 426 Pages
Status : Available For Download
Last checked : 21 Minutes ago!

Java Performance: The Definitive Guide Reviews

  • Tomasz Nurkiewicz
    2018-11-09 11:38

    Java Performance: The Definitive Guide is the best Java book I read this year. In about 400 pages Scott Oaks touches every aspect of Java-based applications, from core terminology and methodologies, through tooling, JIT, garbage collection, threading etc., to reach high-level topics, such as Java EE, JDBC/JPA, Java 8 and even... JavaScript and CSS compression. But let's go through this book chapter by chapter. First the author explains common terms like what is a microbenchmark, measuring throughput versus response time, etc. Surprisingly few sections are devoted solely to statistics and interpretation of inherently varying benchmark results. Oaks goes as far as briefly explaining Student's t-test - important tool in measuring correctness of tests. I found that part very enjoyable (and way too short), but it's just about enough for ordinary purposes. Now it's time to get our hands dirty. Before we start exploring Java performance, author goes through various tool, both available out-of-the-box in JDK and proprietary. A lot is said about different types of profilers - and why they don't show the full picture. JIT (just-in-time) compiler turns out to be one of the most important tools bringing performance to the JVM. First "real" chapter goes into great details of how JIT works in different modes, how to monitor and tune it. I learnt a lot already, but the best is yet to come. Obviously garbage collection is a major concern, thus Oaks devotes two full chapters to explain all popular GC algorithms. Besides pure description, expect strengths and weaknesses of every algorithm as well as unique tuning options. These two chapters are enough to buy this book, but there's plenty more. Further into the book, topics are becoming more high-level. We start with assembly and JIT, through GC, heap and native memory, to reach chapters about threading, thread pools and synchronization. There are many, many examples of proper and broken use of multi-threading, including benchmarks - present throughout whole book as well. We also learn how to monitor and tune threads. Later we learn about somewhat related Java EE topics, including XML parsing performance (expect plenty of SAX/StAX/DOM benchmarks!), JSON and Java serialization. Also HTTP sessions and servlets are well covered, with amazing benchmarks how bloated session or incorrectly tuned thread pools affect performance. I was really amazed to see how increasing heap can degrade (!) performance. Last chapter, "Java SE API Tips" is surprisingly interesting, with many good advices about collections, streams and lambdas introduced in Java 8, class loading, I/O, etc. I think you see the overall picture by now - we start almost from hardware level to reach JDBC/JPA and JDK level in the end. Similarly to first chapter, still every concept is accompanied with microbenchmark.Because this not-so-long book still manages to cover wide range of subjects, I can honestly recommend it to beginners and more experienced Java developers (the former should probably start reading it from back to front). Some aspects are covered only briefly, but in general it was a very enjoyable and thought-provoking lecture. A must buy for every Java developer struggling with performance or lacking understanding of how JVM works. Highly recommended.

  • Steve
    2018-10-21 18:55

    I got a copy of this book through the Amazon Vine program, thinking that it might be time to brush up on some nuts-and-bolts Java information. I'm glad that I did. For me a good technical book sets the context for the problem and gives you enough information to apply what you learned to harder problems that the book covers, but which also gives you information you can apply immediately. java performance the definitive guide does a good job of both.This book will be useful for both those new to programming in Java (since performance and resource use area rarely emphasized who you are learning to program) and those who have been programming a while but have not spent as much time thinking about performance as one might like.

  • Alex Ott
    2018-10-20 15:59

    Very useful...

  • Rod Hilton
    2018-10-24 15:58

    Ever hear of the Baader-Meinhof Phenomenon? It's the name given for that weird feeling you have when you learn a new word you've never seen before, and then all of a sudden you're seeing it absolutely everywhere. It seems like every e-mail and every TV show is using this word, and you wonder to yourself how you managed to never notice it before, since it's all over the place now? Or maybe you start looking at a new car and researching it, and all of a sudden it seems like everyone on the road is driving that same car?I had a very similar effect with this book. I've been a Java programmer for over a decade, but never really been terribly concerned with performance, or the internals of the JVM. I try to write good code in terms of using hashmaps and whatnot to do lookups in constant time rather than O(n) time, but microoptimizations were never my thing. I never really felt like it was something I needed to care about, I never really noticed any performance ISSUES in the products I've worked on during my career. But then whenever I'd finish a chapter in this book, I'd notice that the error messages the chapter mentioned, or the kind of things you might notice when performance is degraded started popping up. Within days of finishing the chapter on the Java Heap, we started experiencing Out of Memory errors on some nodes in our production cluster. I recognized the error messages from the book, and knew what tools to reach for because of it as well. After reading the sections on Threading and Java SE Optimizations, I immediately noticed us doing some goofy, ill-advised things in our code. But the out of memory errors had been happening for months I think, and the code I was noticing had been in place for over a year. This stuff had been all around me, and I just wasn't seeing it. The Baader-Meinhof Phenomenon in action.Truth be told, this book was a bit of a slog to get through. I started it over a year ago, and the material is just so insanely dry that it was a battle. I'd rate myself maybe a 7 out of 10 in terms of interest level in stuff like JVM internals, flags, garbage collection algorithms, and so forth. I like systems stuff, I usually attend low-level system JVM type talks at conferences, but I still found the book, especially the first half, so incredibly dry that I could barely push my way through it. While talking to some buddies about this book, I estimated each chapter's length around 60-80 pages, and then when I checked it turned out most were only around 30 pages or so. Like a 1.5-hour movie that feels like 4, this book is almost punishing.Don't get me wrong, it's full of useful information - in fact the degree to which it is densely, densely packed with information almost contributes to how dry it feels, since you can't read any part of it quickly due to how information-dense the pages are. I learned an absolute ton from this book and highlighted pages and pages worth of notes, but if you wouldn't give yourself a 6 or 7 out of 10 (or higher) on the scale of general-interest-in-JVM-internals, I think you probably stand no chance at making it all the way through the book. If this kind of stuff is your cup of tea, definitely give this book a shot. I think it's the most up-to-date (it talks a lot about Java 7 and 8) of all of the books with the words "Java" and "Performance" in the title (I know of at least 3) and I think it's meant to effectively deprecate the others. If you're experiencing performance problems, or hell even if you're not but you want to be the person on your team who can fix them when they inevitably do arise, it's worth reading for sure. Just, be aware that you'll really have to like this kind of stuff to get through the whole thing.

  • Sumit
    2018-10-22 13:33

    This book covers multiple areas of improvement in great detail, including garbage collection heap memory, native memory, threading and synchronization. A very useful for those looking to tune the performance of their Java application

  • Johan
    2018-10-17 18:59

    Excellent introduction to understanding Java performance. Well paced and informative without being overly dry.

  • Prakash
    2018-11-01 12:43

    Excellent book to read if you are looking to tune your java application.Not an absolute marvel if you are a software developer looking to learn more about the internals of JVM. Obviously, that doesn't seem to be the target audience of this book, but I guess the latter demographic eclipses the former (even among the buyers). The book covers almost all aspects of JVM but can get a little sluggish due to the focus on tuning. I was certainly expecting more theoretical information especially around garbage collection. The author doesn't dive too deep in certain concepts. For comparison, if you look at the JRockit book, that book doesn't hold back.But all in all, it is still useful to read and you will obviously learn a lot.

  • Manzur
    2018-10-18 17:42

    This book is for adults.. adult developers, who are ready to think about software performance not in theoretical big-O notation, but in terms of processor caches, memory pages, garbage collection, JIT and etc, which means a lot in a production environment. So this book introduces you to the techniques of developing performant Java code; tools for profiling and troubleshooting your code; and, of course, 1001 ways of tuning JVM. All in all, it contains a lot of Java development wisdom, and I can assume that even advanced Java devs will find something useful.

  • Cristian Stan
    2018-11-05 12:47

    I really recommend this book. I touches a lot of important topics about Java language and the JVM. Achieving high performance is not an easy task because a lot of knowledge is needed but this books covers the most important aspects and also teaches the basics about the methodology of performance testing, in itself a not trivial challenge.

  • Aaron Decker
    2018-11-03 14:47

    Best Java book I have encountered other than Effective Java.

  • Andrzej Hołowko
    2018-11-03 17:35

    Every JVM developer should read this book. Highly recommended.

  • Franck Chauvel
    2018-10-31 18:59

    This book describes both best programming practices that will secure the performance of your Java code as well as how to finely tune the underlying Java virtual machine to get best possible performance. Performance here is mainly understood as the trade-off between memory consumption and execution time. Covered topics include garbage collection, JavaEE configuration, multi-threading, micro-benchmarking, and recent new Java8 features to name a few. Yet the book assumes some fluency in Java programming and a good understanding of how programs work in general. It helped me profiile and change Java applications and to get noticeable performance increases.

  • Dmitry
    2018-11-11 16:32

    The rare book dedicated to performance topic of java, decent level of choosing subject to discuss and quality of explanation.I found the how I can improve my level of understanding and memorizing any book read - writing extracts in parallel with reading,

  • Zbyszek Sokolowski
    2018-10-26 13:54

    This is one of the best books on the market. Second one on performance topic but it is good. I would like to be a second part. It gives good insight about what is going on in the JVM. How different things behaves etc. I will come back to it frequently.

  • Jakub Dziworski
    2018-10-27 17:48

    I expected a lot less from this book. It not only teaches you how to use Java in a performant way, but also jvm internals and os itself. Many information I found in this book is not available anywhere else.

  • Anton Murauyou
    2018-11-15 18:57

    It's really hard to find a book of such an advanced level that make you organize all your knowledge of Java performance aspects thoroughly. I highly recommend this book for all involved in Java development. For some this book will even give a step forward in career.

  • David
    2018-11-05 13:56

    Unbelievably detailed in the topic of JVM performance, but also focusing on how the compilers and language and internals of the JVM work. This is a book for JVM developers, not just testers.

  • Will
    2018-10-20 15:42

    A modern, up to date book on Java Performance, including 1.8. Thank goodness.