Wydajność w języku Java

4750 PLN+23% VAT (5842 PLN brutto / 1 os.)

Czas trwania szkolenia:5 dni (40h)

Kod kursu:J/ADV

Poziom zaawansowania:
javaperformance

Dostępne terminy

  • Termin
  • Trener
  • Cena
  • Zapis
  • Lokalizacja

Termin:

19 grudnia
Trwają zapisy na szkolenieOferta specjalna
-

Cena:

4750 PLN netto+23% VAT

Lokalizacja:

Zdalne

Termin:

17 kwietnia
Trwają zapisy na szkolenie
-

Cena:

4750 PLN netto+23% VAT

Lokalizacja:

Lokalizacja:

ZdalneWarszawaŁódźPoznańKrakówWrocławGdańskKatowiceBydgoszczGdynia

Termin:

3 lipca
Trwają zapisy na szkolenie
-

Cena:

4750 PLN netto+23% VAT

Lokalizacja:

Lokalizacja:

ZdalneWarszawaŁódźPoznańKrakówWrocławGdańskKatowiceBydgoszczGdynia

Nie odpowiada Ci żaden z dostępnych terminów?

Zapytaj o szkolenie

O szkoleniu Wydajność w języku Java

W cenie otrzymasz:

  • Materiały szkoleniowe
  • Certyfikat ukończenia szkolenia
  • W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki

Dla kogo?

  • Programiści chcący poznać sekrety tworzenia wydajnego programowania w języku Java

Wymagania

  • Umiejętność programowania w języku Java

Zalety

  • Szkolenie skupia się na aspektach wydajnościowych niezależnych od dobranych bibliotek, kontenerów czy frameworków, dzięki czemu poznana wiedza i zdobyte doświadczenie można wykorzystać w dowolnych aplikacjach Java
  • Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
  • Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
  • Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how

Cele szkolenia

  • Obycie się z praktykami tworzenia wydajnego oprogramowania w Java
  • Badanie wydajności z użyciem benchmarków
  • Wykorzystanie narzędzi do profilowania i monitorowania
  • Tuningowanie JVM (w tym Garbage Collector)

Program

Tworzenie wydajnego oprogramowania

  • Różne wymiary wydajności
  • Proces tworzenia wydajnego oprogramowania
  • Co wpływa na wydajność w Javie

Pomiary wydajności

  • Problemy ze zwiększaniem wydajności
  • Micro i macrobenchmarking
  • Profilowanie aplikacji
  • Przegląd narzędzi do profilowania i monitorowania
  • Użycie wybranych narzędzi (JConsole, VisualVM, JMC, MAT)

Wydajna praca z plikami

  • Strumienie - jak zepsuć i jak naprawić
  • Swobodny dostęp i inne sztuczki
  • Kanały i bufory (NIO)
  • Odwzorowywanie plików w pamięci (NIO)
  • Optymalizacja Serializacji
  • Przegląd funkcjonalny NIO2
  • Przegląd rozwiązań dla XML

Algorytm wydajności

  • Złożoność obliczeniowa
  • Sztuka doboru rozwiązania
  • Rekurencja a iteracja
  • Nie tylko algorytm się liczy

Kolekcje i tablice

  • API kolekcji z wysoka
  • Porównanie, dobór, konfiguracja i poprawne użycie: zbiorów, list, kolejek, map
  • Stare kontenery, czyli czego i czemu unikać
  • Widoki kolekcji
  • Klasa pomocnicza Collections
  • Przegląd kolekcji wielowątkowych (java.util.concurrent)
  • Tablice - wady i zalety
  • Klasa pomocnicza Arrays
  • Kolekcje na typach prostych - przegląd bibliotek

JMH - microbenchmark Framework

  • Wstęp do JMH
  • Tworzenie benchmarków
  • Uruchomienie i wyniki
  • Konfiguracja benchmarków
  • Wsparcie wielowątkowości
  • Benchmarki parametryzowalne
  • Blackhole i poprawne pętle
  • Pułapki, profilery i inne tematy zaawansowane

Zarządzanie pamięcią

  • Jak działa odśmiecanie pamięci
  • Co gwarantuje Garbage Collector?
  • Cykl życia obiektu
  • Referencje soft, weak i phantom
  • Wycieki pamięci w Javie - powody i unikanie
  • Złe praktyki przy Garbage Collector
  • Ograniczanie zajętości pamięci
  • Słaba teoria generacji, czyli skąd minor i major collections
  • Obszary pamięci: young, eden, survival spaces, old/tenured, metaspace
  • Opcje podglądu GC
  • Rodzaje GC: Serial, Parallel, Concurrent, G1, ZGC, Epsilon, Shenandoah
  • Wybór, działanie i tuning GC
  • Zing jako płatna alternatywa bez pauz

Maszyna wirtualna Javy

  • Podstawowe tryby pracy a wydajność
  • Parametry tuningowania JVM
  • Przegląd wybranych macrobenchmarków: JBB2015, VolanoMark
  • Usprawnienia w Java

Optymalizacja a HTTP (opcjonalne)

  • Kłopoty z optymalizacją serwerów
  • Przegląd przydatnych narzędzi i bibliotek
  • HttpUnit, JWebUnit, Grinder, Apache JMeter
  • Pokaz możliwości Apache JMeter

Problemy z optymalizacją

  • Optymalizacje kompilatora a microbenchmark
  • Microbenchmark a GC
  • Uruchamianie wielu aplikacji
  • Przyzwyczajenia programistów
  • Optymalizacja za kompilator
  • Przedwczesna optymalizacja
  • Antywzorze związane z wydajnością

Podobne szkolenia