Wydajność w języku Java

O szkoleniu

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)

Wymagania

  • Umiejętność programowania w języku Java
Dlaczego warto wziąć udział?
  • 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
Kto powinien wziąć udział?
  • Programiści chcący poznać sekrety tworzenia wydajnego programowania w języku Java

Program szkolenia

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
  • JIT: kompilacje, podgląd, kontrola, strojenie
  • Wyjątki a wydajność
  • Parametry tuningowania JVM
  • Podgląd parametrów programu
  • Przegląd wybranych macrobenchmarków: JBB2015, VolanoMark
  • Usprawnienia w Java

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ą

Czas trwania

5 dni (40h)

Prelegenci

Michał Podbielski

Pierwsze kroki w programowaniu stawiał w podstawówce, jeszcze na ZX-Spectrum w języku BASIC, gdzie załapał bakcyla. Od tego momentu podporządkował IT całe swoje życie. Profil informatyczny w szkole średniej, na studiach dyplom z zakresu Inżynierii Oprogramowania zdobyty z oceną celującą i wyróżnieniem. Zawodowo zaczynał od budowy sieci Internetowych, potem rozwijał oprogramowanie w korporacji Siemens. Obecnie sprzedaje własne oprogramowanie, szkoli, zajmuje się konsultingiem i pisze książki fantasy.

Co robię na co dzień?

Trener, developer, przedsiębiorca, pisarz

Dlaczego lubię szkolić?

Od podstawówki miałem swoich podopiecznych, których przeciągałem z klasy do klasy, potem w średniej, na studiach. Uczę od 10tego roku życia i nie tylko potrafię, ale uwielbiam to robić.

Terminy i miejsca

To szkolenie nie ma aktualnych terminów. Wyślij zapytanie o nowe terminy bądź zapisz na powiadomienia o nowych terminach.

Komputer z dostępem do Internetu

Rejestracja

Szkolenie online
za osobę
4 750
+23% VAT
Cena zawiera:
  • udział w zajęciach
  • materiały szkoleniowe
  • certyfikat uczestnictwa
Zapisz się

Organizator

Sages Sp. z o.o.
02-796 Warszawa
ul. Wąwozowa 11
woj. mazowieckie
FAQ

Najczęściej zadawane pytania

Prosimy o przejście do sekcji Zapisz się, aby wypełnić formularz zgłoszenia w wydarzeniu. Po jego wysłaniu organizator skontaktuje się celem potwierdzenia przyjęcia zgłoszenia i przekazania szczegółów organizacyjnych.

Podczas wypełniania formularza rejestracji zaznacz opcję "Oświadczam, że udział będzie finansowany ze środków publicznych, proszę o wystawienie faktury z zerową stawką VAT."

Jeśli potrzebujesz zarejestrować organizatora w wewnętrznym systemie zamówień możesz zrobić to na dwa sposoby. W trakcie wypełniania zgłoszenia w polu Uwagi przekaż tą informację - opiekun szkolenia skontaktuje się w celu dopełnienia formalności. Możesz to również zrobić samodzielnie z użyciem poniższych danych:
  • Nazwa firmy: Sages Sp. z o.o.
  • Ulica i nr: ul. Wąwozowa 11
  • Kod pocztowy: 02-796
  • Miejscowość: Warszawa
  • Numer NIP: 1132737407

Najszybszym sposobem kontaktu z organizatorem i uzyskania dodatkowych informacji jest wypełnienie formularza kontaktowego. Możesz też zadzwonić do organizatora.
Kontakt

Masz pytania? Napisz do nas

Wypełnij formularz

Uzupełnij pole
Uzupełnij pole
Wybierz termin wydarzenia
Uzupełnij pole
Uzupełnij pole
Uzupełnij wiadomość
Potwierdź, że nie jesteś botem.
Musisz zaakceptować regulamin.

Dane kontaktowe

Eventis.pl
04-395 Warszawa ul. Siennicka 22/22
Powiadomienia o nowych terminach

Zapisz się, aby otrzymywać powiadomienia o nowych terminach tego wydarzenia!