• Complain

Scott Oaks - Java Performance

Here you can read online Scott Oaks - Java Performance full text of the book (entire story) in english for free. Download pdf and epub, get meaning, cover and reviews about this ebook. year: 2019, publisher: OReilly Media, genre: Computer. Description of the work, (preface) as well as reviews are available. Best literature library LitArk.com created for fans of good reading and offers a wide selection of genres:

Romance novel Science fiction Adventure Detective Science History Home and family Prose Art Politics Computer Non-fiction Religion Business Children Humor

Choose a favorite category and find really read worthwhile books. Enjoy immersion in the world of imagination, feel the emotions of the characters or learn something new for yourself, make an fascinating discovery.

Scott Oaks Java Performance
  • Book:
    Java Performance
  • Author:
  • Publisher:
    OReilly Media
  • Genre:
  • Year:
    2019
  • Rating:
    3 / 5
  • Favourites:
    Add to favourites
  • Your mark:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Java Performance: summary, description and annotation

We offer to read an annotation, description, summary or preface (depends on what the author of the book "Java Performance" wrote himself). If you haven't found the necessary information about the book — write in the comments, we will try to find it.

Scott Oaks: author's other books


Who wrote Java Performance? Find out the surname, the name of the author of the book and a list of all author's works by series.

Java Performance — read online for free the complete book (whole text) full work

Below is the text of the book, divided by pages. System saving the place of the last page read, allows you to conveniently read the book "Java Performance" online for free, without having to search again every time where you left off. Put a bookmark, and you can go to the page where you finished reading at any time.

Light

Font size:

Reset

Interval:

Bookmark:

Make
Java Performance

by Scott Oaks

Copyright 2020 Scott Oaks. All rights reserved.

Printed in the United States of America.

Published by OReilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472.

OReilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://oreilly.com). For more information, contact our corporate/institutional sales department: 800-998-9938 or corporate@oreilly.com .

  • Acquisitions Editor: Suzanne McQuade
  • Developmental Editor: Amelia Blevins
  • Production Editor: Beth Kelly
  • Copyeditor: Sharon Wilkey
  • Proofreader: Kim Wimpsett
  • Indexer: WordCo Inc.
  • Interior Designer: David Futato
  • Cover Designer: Karen Montgomery
  • Illustrator: Rebecca Demarest
  • April 2014: First Edition
  • February 2020: Second Edition
Revision History for the Second Edition
  • 2020-02-11: First Release

See http://oreilly.com/catalog/errata.csp?isbn=9781492056119 for release details.

The OReilly logo is a registered trademark of OReilly Media, Inc. Java Performance, the cover image, and related trade dress are trademarks of OReilly Media, Inc.

The views expressed in this work are those of the author, and do not represent the publishers views. While the publisher and the author have used good faith efforts to ensure that the information and instructions contained in this work are accurate, the publisher and the author disclaim all responsibility for errors or omissions, including without limitation responsibility for damages resulting from the use of or reliance on this work. Use of the information and instructions contained in this work is at your own risk. If any code samples or other technology this work contains or describes is subject to open source licenses or the intellectual property rights of others, it is your responsibility to ensure that your use thereof complies with such licenses and/or rights.

978-1-492-05611-9

[LSI]

Preface

When OReilly first approached me about writing a book on Java performancetuning, I was unsure. Java performance, I thoughtarent we donewith that? Yes, I still work on improving the performance of Java (and other) applicationson a daily basis, but I like to think that I spend most of my time dealingwith algorithmic inefficiencies and external system bottlenecks ratherthan on anythingdirectly related to Java tuning.

A moments reflection convinced me that I was (as usual) kidding myself. Itis certainly true that end-to-end system performance takes up a lot of mytime, and that I sometimes come across code that uses an O(n2) algorithmwhen it could use one with O(logN) performance. Still, it turns out thatevery day Ithink about garbage collection (GC) performance, or the performance of the JVM compiler, or howto get the best performance from Java APIs.

That is not to minimize the enormous progress that has been made in theperformance of Java and JVMs over the past 20-plus years. When I was a Javaevangelist at Sun during the late 1990s, the only real benchmark availablewas CaffeineMark 2.0 from Pendragon software. For a variety of reasons,the design of that benchmark quickly limited its value;yet in its day, we were fond of tellingeveryone that Java 1.1.8 performance was eight times faster than Java 1.0performance based on that benchmark. And that was trueJava 1.1.8 had anactual just-in-time compiler, whereas Java 1.0 was pretty much completelyinterpreted.

Then standards committees began to develop more rigorous benchmarks, andJava performance began to be centered around them. The result was acontinuous improvement in all areas of the JVMgarbage collection,compilations, and within the APIs. That process continues today, ofcourse, but one of the interesting facts about performance work is that itgets successively harder. Achieving an eightfold increase in performance byintroducing a just-in-time compiler was a straightforward matter ofengineering, and even though the compiler continues to improve, were notgoing to see an improvement like that again. Parallelizing the garbagecollector was a huge performance improvement, but more recent changeshave been more incremental.

This is a typical process for applications (and the JVM itself is justanother application): in the beginning of a project, its easy enoughto find architectural changes (or code bugs) that, when addressed, yieldhuge performance improvements. In a mature application, finding suchperformance improvements is rare.

That precept was behind my original concern that, to a large extent,the engineering world might be done with Java performance. A few thingsconvinced me I was wrong. First is the number of questions Isee daily about how this or that aspect of the JVM performs under certaincircumstances. New engineers come to Java all the time, and JVM behaviorremains complex enough in certain areas that a guide to its operationis still beneficial. Second is that environmental changes in computingseem to have altered the performance concerns that engineers face today.

Over the past few years, performance concerns havebecome bifurcated. On the one hand, very large machines capable of runningJVMs with very large heaps are now commonplace. The JVM has moved to addressthose concerns with a new garbage collector (G1), whichas a newtechnologyrequires a little more hand-tuning than traditional collectors.At the same time, cloud computing has renewed the importance of small,single-CPUmachines: you can go to Oracle or Amazon or a host of other companies and cheaply rent a single CPU machine to run a small applicationserver. (Youre not actually getting a single-CPU machine: youregetting a virtual OS image on a very large machine, but the virtualOS is limited to using a single CPU. From the perspective of Java, thatturns out to be the same as a single-CPU machine.) In those environments,correctly managing small amounts of memory turns out to be quite important.

The Java platform also continues to evolve. Each new edition of Javaprovides new language features and new APIs that improve the productivityof developersif not always the performance of their applications. Bestpractice use of these language features can help differentiate betweenan application that sizzles and one that plods along. And the evolutionof the platform brings up interesting performance questions: there is noquestion that using JSON to exchange information betweentwo programs is much simpler than coming up with a highly optimizedproprietary protocol. Saving time for developers is a big winbut makingsure that productivity win comes with a performance win (or at least breaks even) is the real goal.

Who Should (and Shouldnt) Read This Book

This book is designed for performance engineers and developers who arelooking to understand how various aspects of the JVM and the Java APIsimpact performance.

If it is late Sunday night, your site is going live Monday morning, andyoure looking for a quick fix for performance issues, this isnot the book for you.

If you are new to performance analysis and are starting that analysis inJava, this book can help you. Certainly my goal is to provide enoughinformation and context that novice engineers can understand how to applybasic tuning and performance principles to a Java application. However,system analysis is a broad field. There are a number of excellentresources for system analysis in general (and those principles, of course,apply to Java), and in that sense, this book will ideally be a usefulcompanion to those texts.

At a fundamental level, though, making Java go really fast requires a deepunderstanding of how the JVM (and Java APIs) actually work. Hundreds of Java tuning flags exist, and tuning the JVM has to be morethan an approach of blindly trying them and seeing what works. Instead,my goal is to provide detailed knowledge about what the JVM andAPIs are doing, with the hope that if you understand how those things work,youll be able to look at the specific behavior of an application andunderstand

Next page
Light

Font size:

Reset

Interval:

Bookmark:

Make

Similar books «Java Performance»

Look at similar books to Java Performance. We have selected literature similar in name and meaning in the hope of providing readers with more options to find new, interesting, not yet read works.


Reviews about «Java Performance»

Discussion, reviews of the book Java Performance and just readers' own opinions. Leave your comments, write what you think about the work, its meaning or the main characters. Specify what exactly you liked and what you didn't like, and why you think so.