| Tytuł: | Tworzenie wydajnych aplikacji w Java |
| Kod: | Java-wyd |
| Kategoria: | Java i JVM |
| Forma: | 50% wykłady / 50% warsztaty |
| Czas trwania: | 5 dni |
| Zapisy: |
Indywidualne zamówienie i dopasowanie dla grupy. |
| Logistyka: |
W siedzibie klienta lub w innym dowolnym miejscu. |
Szkolenie jest adresowane do programistów języka Java, którzy chcą poznać sekrety tworzenia wydajnego oprogramowania w tym języku. Celem szkolenia jest obycie się z praktykami tworzenia wydajnego oprogramowania w Java, poprzez tworzenie benchmark’ów i badanie wydajności, profilowanie aplikacji, używanie struktur danych odpowiednich do trybu pracy, wydajny dostęp do plików i przede wszystkim obalenie błędnych mitów dotyczących pracy Garbage Collector’a.
Wielu programistów Java posiadających nawet wieloletnie doświadczenie nie zdaje sobie sprawy z tego jakie grzechy popełnia próbując pomagać wirtualnej maszynie Java, czy Garbage Collector’owi, w rezultacie otrzymując efekt przeciwny do zamierzonego. To szkolenie obala te mity i uczy prawdziwych praktyk tworzenia wydajnego oprogramowania w Javie. A także jak zwiększyć wydajność aplikacji bez dotykania samego kodu, czyli profilowanie JVM i GC.
Program Szkolenia
Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.-
Tworzenie wydajnego oprogramowania- Różne wymiary wydajności
- Wydajność a użytkownik – subiektywne odczucie wydajności
- Proces tworzenia wydajnego oprogramowania
- Co wpływa na wydajność w Javie
- Różne wymiary wydajności
-
Pomiary wydajności- Problemy ze zwiększaniem wydajności
- Co to jest Benchmarking
- Czym jest profilowanie aplikacji
- Problemy ze zwiększaniem wydajności
-
Wydajna praca z plikami- Strumienie
- Swobodny dostęp do plików
- Lepsza wydajność – biblioteka NIO
- NIO2
- Serializacja
- Strumienie
-
Algorytm wydajności- Sztuka doboru algorytmu
- Problemy z rekurencją
- Nie tylko algorytm się liczy
- Sztuka doboru algorytmu
-
Kolekcje i tablice- API kolekcji
- Struktury danych – podstawy wydajnych operacji
- Zbiory
- Listy
- Kolejki
- Mapy
- Stare kontenery (Java 1.0 i 1.1)
- Widok kolekcji
- Collections - klasa pomocnicza
- Wydajność a kolekcje odporne na wielowątkowość
- Tablice
- API kolekcji
-
JMH – microbenchmak framework- Czym jest JMH
- @Benchmark
- Przygotowanie projektu JMH
- Uruchomienie JMH
- Wyniki benchmarków
- Dodatkowa konfiguracja benchmarków
- Współbieżność
- Benchmarki parametryzowalne
- Blackhole i bezpieczne pętle
- Pułapki
- Inne frameworki
- Informacje dodatkowe (opcjonalne)
- Czym jest JMH
-
Zarządzanie pamięcią- Java a zarządzanie pamięcią
- Typy referencji a Garbage Collector i proces odśmiecania
- Wycieki pamięci w Javie
- Garbage Collector - złe praktyki
- Ograniczanie zajętości pamięci
- Opcje strojenia Garbage Collector’a
- Java a zarządzanie pamięcią
-
Maszyna wirtualna Javy- Podstawowe tryby pracy a wydajność
- Parametry wydajnościowe JVM
- Przegląd wybranych macrobenchmarków
- Usprawnienia w Java
- Podstawowe tryby pracy a wydajność
-
Problemy z optymalizacją- Optymalizacje kompilatora a micro-benchmark
- Micro-benchmark a GC
- Uruchamianie wielu aplikacji
- Przyzwyczajenia programistów
- Optymalizacja za kompilator
- Przedwczesna optymalizacja
- Antywzorze związane z wydajnością
- Optymalizacje kompilatora a micro-benchmark
Pobierz program w formacie PDF