Wydajnosc Javy.pdf

(1657 KB) Pobierz
945906480.001.png
Ty t uł oryginału: Java Performance on Multi-Core Platforms, First Edition
Tłumaczenie: Lech Lachowski
Projekt okładki: proj: Studio Gravite / Olsztyn
Obarek, Pokoński, Pazdrijowski, Zaprucki
ISBN: 978-83-246-4380-6
Authorized translation from the English language edition, entitled: JAVA PERFORMANCE ON
MULTI-CORE PLATFORMS, First Edition; ISBN 0137142528; by Charlie Hunt; and John Binu;
published by Pearson Education, Inc, publishing as Prentice Hall.
Copyright © 2012 by Oracle and/or its affiliates. All rights reserved. Oracle is headquartered at 500
Oracle Parkway, Redwood Shores, CA 94065, U.S.A.
All rights reserved. No part of this book may by reproduced or transmitted in any form or by any
means, electronic or mechanical, including photocopying, recording or by any information storage
retrieval system, without permission from Pearson Education, Inc.
Polish language edition published by HELION S.A. Copyright © 2013.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Wydawnictwo HELION dołożyło wszelkich starań, by zawarte w tej książce informacje były
kompletne
i rzetelne. Nie bierze jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane
z tym ewentualne naruszenie praw patentowych lub autorskich. Wydawnictwo HELION nie ponosi
również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji
zawartych w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/wydjav.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/wydjav
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
945906480.002.png
Spis treci
Przedmowa .................................................................................................. 13
Przedmowa .................................................................................................. 15
Wstp .......................................................................................................... 17
Podzikowania ............................................................................................. 21
O autorach ................................................................................................... 23
1. Strategie, podejcia i metodologie ........................................................... 25
Zasadnicze czynniki .................................................................................................................... 26
Dwa podejcia: z góry do dou oraz z dou do góry ................................................................... 29
Metoda z góry do dou ............................................................................................................ 29
Metoda z dou do góry ............................................................................................................ 30
Wybór odpowiedniej platformy i ocena systemu ...................................................................... 31
Wybór waciwej architektury procesora ............................................................................... 32
Ocena wydajnoci systemu ..................................................................................................... 33
Bibliografia ................................................................................................................................... 34
2. Monitorowanie wydajnoci systemu operacyjnego .................................. 35
Definicje ...................................................................................................................................... 36
Wykorzystanie CPU .................................................................................................................... 36
Monitorowanie wykorzystania CPU w systemach Windows ............................................... 37
Monitorowanie wykorzystania CPU w systemach Windows
za pomoc komendy typeperf ............................................................................................... 40
Monitorowanie wykorzystania CPU w systemach Linux ..................................................... 41
Monitorowanie wykorzystania CPU w systemach Solaris .................................................... 42
Monitorowanie wykorzystania CPU w systemach Linux i Solaris
za pomoc narzdzi wiersza polece ................................................................................... 45
6
Wydajno Javy
Kolejka uruchamiania planisty krótkoterminowego .................................................................. 48
Monitorowanie kolejki uruchamiania planisty krótkoterminowego
w systemach Windows .......................................................................................................... 49
Monitorowanie kolejki uruchamiania planisty krótkoterminowego
w systemach Solaris .............................................................................................................. 50
Monitorowanie kolejki uruchamiania planisty krótkoterminowego
w systemach Linux ................................................................................................................ 51
Wykorzystanie pamici ............................................................................................................... 51
Monitorowanie wykorzystania pamici w systemach Windows ........................................... 52
Monitorowanie wykorzystania pamici w systemach Solaris ............................................... 53
Monitorowanie wykorzystania pamici w systemach Linux ................................................. 54
Monitorowanie rywalizacji o blokady w systemach Solaris .................................................. 55
Monitorowanie rywalizacji o blokady w systemach Linux ................................................... 57
Monitorowanie rywalizacji o blokady w systemach Windows ............................................. 57
Izolowanie gorcych blokad .................................................................................................... 58
Monitorowanie mimowolnego przeczania kontekstu ......................................................... 58
Monitorowanie migracji wtków ............................................................................................ 59
Wykorzystanie we/wy sieci ......................................................................................................... 59
Monitorowanie wykorzystania we/wy sieci w systemach Solaris ......................................... 60
Monitorowanie wykorzystania we/wy sieci w systemach Linux .......................................... 61
Monitorowanie wykorzystania we/wy sieci w systemach Windows .................................... 61
Wzgldy dotyczce poprawy wydajnoci aplikacji ................................................................ 62
Wykorzystanie we/wy dysku ....................................................................................................... 63
Dodatkowe narzdzia wiersza polece ...................................................................................... 65
Monitorowanie wykorzystania CPU w systemach z procesorami SPARC T ........................... 66
Bibliografia ................................................................................................................................... 69
3. Przegld JVM ............................................................................................ 71
Wysokopoziomowa architektura HotSpot VM .......................................................................... 72
HotSpot VM Runtime ................................................................................................................. 73
Opcje wiersza polece ............................................................................................................ 74
Cykl ycia maszyny wirtualnej ............................................................................................... 75
adowanie klas maszyny wirtualnej ....................................................................................... 78
Weryfikacja kodu bajtowego ................................................................................................... 80
Udostpnianie danych klas ..................................................................................................... 81
Interpreter ............................................................................................................................... 82
Obsuga wyjtków ................................................................................................................... 84
Synchronizacja ......................................................................................................................... 84
Zarzdzanie wtkami ............................................................................................................... 85
Zarzdzanie stert C++ .........................................................................................................89
Java Native Interface ............................................................................................................... 90
Obsuga bdów krytycznych VM .......................................................................................... 91
Mechanizmy odzyskiwania pamici HotSpot VM .................................................................... 93
Pokoleniowy mechanizm odzyskiwania pamici ................................................................... 93
Mode pokolenie ...................................................................................................................... 95
Szybka alokacja ........................................................................................................................ 97
Mechanizmy odzyskiwania pamici, czyli osiokowi w oby dano ..................................... 97
Spis treci
7
Szeregowy mechanizm odzyskiwania pamici ...................................................................... 98
Równolegy mechanizm odzyskiwania pamici: przepustowo ma znaczenie! ................. 99
Przewanie-równoczesny mechanizm odzyskiwania pamici: opónienie ma znaczenie! .... 99
Mechanizm odzyskiwania pamici najpierw-kosz: nastpca CMS .................................... 102
Porównanie ............................................................................................................................ 102
Generowanie pracy mechanizmu odzyskiwania pamici .................................................... 103
Perspektywa historyczna ....................................................................................................... 103
Kompilatory JIT HotSpot VM .................................................................................................. 104
Analiza hierarchii klas ........................................................................................................... 105
Polityka kompilacji ................................................................................................................ 106
Deoptymalizacja .................................................................................................................... 107
Kompilator JIT dla aplikacji klienckich ............................................................................... 108
Kompilator JIT dla aplikacji serwerowych .......................................................................... 108
SSA — wykres programowo zaleny .................................................................................... 108
Nadchodzce poprawki ......................................................................................................... 110
Regulacja adaptacyjna HotSpot VM ........................................................................................ 111
Wartoci domylne dla Java 1.4.2 ......................................................................................... 111
Ergonomiczne wartoci domylne dla 5. wersji Javy .......................................................... 111
Zaktualizowane domylne wartoci ergonomiczne dla Java 6 Update 18 .......................... 113
Adaptacyjne ustalanie rozmiaru sterty Java ......................................................................... 115
Nie tylko ergonomia .............................................................................................................. 115
Bibliografia ................................................................................................................................. 116
4. Monitorowanie wydajnoci maszyny wirtualnej Javy ............................. 117
Definicje .................................................................................................................................... 118
Odzyskiwanie pamici .............................................................................................................. 118
Dane istotne dla procesu odzyskiwania pamici ................................................................. 119
Raportowanie danych procesu odzyskiwania pamici ........................................................ 119
Analiza offline danych z procesów odzyskiwania pamici .................................................. 129
Narzdzia graficzne ............................................................................................................... 132
Kompilator JIT .......................................................................................................................... 150
adowanie klas .......................................................................................................................... 151
Monitorowanie aplikacji Java ...................................................................................................153
Szybkie monitorowanie rywalizacji o blokady ..................................................................... 154
Bibliografia ................................................................................................................................. 156
5. Profilowanie aplikacji Java ..................................................................... 157
Terminologia .............................................................................................................................. 159
Terminy zwizane z profilowaniem ..................................................................................... 159
Pojcia zwizane z programem Oracle Solaris Studio Performance Analyzer .................. 159
Pojcia zwizane z programem NetBeans Profiler ............................................................. 160
Oracle Solaris Studio Performance Analyzer .......................................................................... 161
Obsugiwane platformy ......................................................................................................... 161
Pobieranie i instalacja programu Oracle Solaris Studio Performance Analyzer ............... 162
Przechwytywanie profilu Oracle Solaris Studio Performance Analyzer ............................ 163
Przegldanie zebranej próby ................................................................................................ 166
Prezentacja danych ................................................................................................................ 174
Zgłoś jeśli naruszono regulamin