Tworzenie wydajnych aplikacji w Java

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.

  1. Tworzenie wydajnego oprogramowania
    1. Różne wymiary wydajności
    2. Wydajność a użytkownik – subiektywne odczucie wydajności
    3. Proces tworzenia wydajnego oprogramowania
    4. Co wpływa na wydajność w Javie
  2. Pomiary wydajności
    1. Problemy ze zwiększaniem wydajności
    2. Co to jest Benchmarking
    3. Czym jest profilowanie aplikacji
  3. Wydajna praca z plikami
    1. Strumienie
    2. Swobodny dostęp do plików
    3. Lepsza wydajność – biblioteka NIO
    4. NIO2
    5. Serializacja
  4. Algorytm wydajności
    1. Sztuka doboru algorytmu
    2. Problemy z rekurencją
    3. Nie tylko algorytm się liczy
  5. Kolekcje i tablice
    1. API kolekcji
    2. Struktury danych – podstawy wydajnych operacji
    3. Zbiory
    4. Listy
    5. Kolejki
    6. Mapy
    7. Stare kontenery (Java 1.0 i 1.1)
    8. Widok kolekcji
    9. Collections - klasa pomocnicza
    10. Wydajność a kolekcje odporne na wielowątkowość
    11. Tablice
  6. JMH – microbenchmak framework
    1. Czym jest JMH
    2. @Benchmark
    3. Przygotowanie projektu JMH
    4. Uruchomienie JMH
    5. Wyniki benchmarków
    6. Dodatkowa konfiguracja benchmarków
    7. Współbieżność
    8. Benchmarki parametryzowalne
    9. Blackhole i bezpieczne pętle
    10. Pułapki
    11. Inne frameworki
    12. Informacje dodatkowe (opcjonalne)
  7. Zarządzanie pamięcią
    1. Java a zarządzanie pamięcią
    2. Typy referencji a Garbage Collector i proces odśmiecania
    3. Wycieki pamięci w Javie
    4. Garbage Collector - złe praktyki
    5. Ograniczanie zajętości pamięci
    6. Opcje strojenia Garbage Collector’a
  8. Maszyna wirtualna Javy
    1. Podstawowe tryby pracy a wydajność
    2. Parametry wydajnościowe JVM
    3. Przegląd wybranych macrobenchmarków
    4. Usprawnienia w Java
  9. Problemy z optymalizacją
    1. Optymalizacje kompilatora a micro-benchmark
    2. Micro-benchmark a GC
    3. Uruchamianie wielu aplikacji
    4. Przyzwyczajenia programistów
    5. Optymalizacja za kompilator
    6. Przedwczesna optymalizacja
    7. Antywzorze związane z wydajnością


Pobierz program w formacie PDF

Materiały związane ze szkoleniem

Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.

Zamów szkolenie

Imię i nazwisko:
Firma:
E-mail:
Nr tel:
Temat:
Wiadomość:

Jeżeli preferujesz osobisty kontakt to zawsze możesz zadzwonić.

Iwona Sobótka

Koordynatorka szkoleń


Twoje dane osobowe przetwarzamy, aby udzielić odpowiedzi na Twoje pytanie. Administratorem Twoich danych osobowych jest Bottega It Minds Sławomir Sobótka. Przysługuje Ci prawo wniesienia sprzeciwu wobec przetwarzania, prawo dostępu do danych, prawo żądania ich sprostowania, usunięcia lub ograniczenia ich przetwarzania. Szczegółowe informacje dotyczące przetwarzania Twoich danych osobowych znajdują się TUTAJ.