wydajność javy cała książka, ebooki
[ Pobierz całość w formacie PDF ]
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
8
Wydajno Javy
Filtrowanie danych profilu ................................................................................................... 177
Narzdzie wiersza polece er_print ..................................................................................... 178
Program NetBeans Profiler ....................................................................................................... 185
Obsugiwane platformy ......................................................................................................... 186
Pobieranie i instalacja NetBeans Profiler ............................................................................ 186
Rozpoczynanie sesji profilowania metod ............................................................................. 186
Controls, czyli przyciski sterujce ........................................................................................ 193
Status ...................................................................................................................................... 193
Profiling Results, czyli rezultaty profilowania ..................................................................... 193
Saved Snapshots, czyli zapisane zrzuty ekranu ................................................................... 193
View, czyli podgld ............................................................................................................... 194
Basic Telemetry, czyli podstawowa telemetria .................................................................... 194
Przegldanie aktualnych rezultatów ..................................................................................... 195
Wykonywanie zrzutu ekranu rezultatów ............................................................................. 195
Rozpoczynanie sesji profilowania pamici .......................................................................... 196
Przegldanie biecych rezultatów ...................................................................................... 198
Wykonywanie zrzutu ekranu rezultatów ............................................................................. 200
Izolowanie wycieków pamici .............................................................................................. 201
Analiza zrzutów sterty ........................................................................................................... 201
Bibliografia ................................................................................................................................. 202
6. Profilowanie aplikacji Java — porady i sztuczki ...................................... 203
Potencjalne obszary poprawy wydajnoci ................................................................................ 203
Wykorzystanie CPU przez jdro lub system ........................................................................... 204
Rywalizacja o blokady ............................................................................................................... 212
Uycie sowa kluczowego volatile ............................................................................................ 221
Zmiana rozmiaru struktur danych ............................................................................................ 222
Zmiana rozmiaru klas StringBuilder lub StringBuffer ........................................................ 223
Zmiana rozmiaru klas Java Collections ................................................................................ 226
Zwikszanie wspóczynnika równolegoci .............................................................................. 230
Wysokie wykorzystanie CPU .................................................................................................... 232
Inne uyteczne wskazówki dotyczce programu Performance Analyzer .............................. 233
Bibliografia ................................................................................................................................. 235
7. Regulacja JVM krok po kroku ................................................................. 237
Metodologia ............................................................................................................................... 238
Zaoenia ................................................................................................................................ 240
Wymagania dotyczce infrastruktury testowania ................................................................ 240
Wymagania systemowe aplikacji .............................................................................................. 241
Dostpno ............................................................................................................................ 241
Zarzdzalno ........................................................................................................................ 241
Przepustowo ....................................................................................................................... 241
Opónienie i czas reakcji ...................................................................................................... 242
Zuycie pamici ..................................................................................................................... 242
Czas uruchamiania ................................................................................................................ 242
Ranking wymaga systemowych .............................................................................................. 242
Wybór modelu wdroenia JVM ................................................................................................ 243
Model wdroenia pojedynczej instancji JVM ...................................................................... 243
[ Pobierz całość w formacie PDF ]