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
- 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
- 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.
Rejestracja
- udział w zajęciach
- materiały szkoleniowe
- certyfikat uczestnictwa
Wydarzenie nieaktualne. Wypełnij formularz, aby zapytać o nowe terminy.
Organizator
Najczęściej zadawane pytania
- Nazwa firmy: Sages Sp. z o.o.
- Ulica i nr: ul. Wąwozowa 11
- Kod pocztowy: 02-796
- Miejscowość: Warszawa
- Numer NIP: 1132737407
Masz pytania? Napisz do nas
