Zarządzanie pamięcią w .NET

Warsztat ekspercki to coś więcej niż szkolenie. To praca w kontekście konkretnych problemów.

Kod: NETplatform-mem
Kategoria: Platforma .NET
Forma: 50% wykłady / 50% warsztaty
Czas trwania: 3 dni
Odbiorcy: developerzy, architekci
Zapisy: Indywidualne zamówienie i dopasowanie dla grupy.
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.

Warsztat ma za zadanie zaznajomić uczestników z tematem świadomego programowania i projektowania oprogramowania .NET pod kątem zarządzania pamięcią i wynikającą z niej skalowalnością, wydajnością i kosztami. Warsztat składa się z trzech nierozłącznych części, przeplatanych ze sobą w trakcie kursu:

Programowanie
Dowiedz się jak pisać wydajny kod, uwzględniając różne "humory" Garbage Collectora, o których być może nawet jeszcze nie wiesz.

Po tym szkoleniu zaczniesz programować znacznie bardziej świadomie, nie unikając również bardziej zaawansowanych technik.

Np. czy wiesz, że kolejność pół w obiektach może wpływać na wydajność kodu? Czy jesteś świadom ukrytych źródeł alokacji?

Teoria

Dowiedz się jak to wszystko działa pod spodem. Wiedza ta nie tylko poszerzenie inżynierskich horyzontów, ale również możliwość lepszego rozumienia i analizowania na własną rękę wszystkiego, na co natkniesz się w przyszłości w temacie zarządzania pamięcią.

Np. czy potrafisz obecnie ze zrozumieniem porównywać GC z różnych ekosystemów? Czy dobrze rozumiesz ogłaszane zmiany w CLR w tym zakresie?

Diagnostyka

Naucz się jak diagnozować i monitorować swoje aplikacje. Po zdobyciu tej wiedzy żadne problemy nie będą Ci straszne, nawet "na produkcji". Po tym szkoleniu, rozwiązanie problemów to tylko kwestia czasu. Pytanie nie będzie już brzmieć "jak?" i "czy?" je rozwiążesz, ale jedynie "kiedy?".

Np. czy wiesz jak bezinwazyjnie diagnozować wyciek pamięci albo wysokie użycie CPU przez GC?

Wymagania

Uczestnicy znają podstawy programowania w języku C# oraz potrafią obsługiwać środowisko programistyczne Visual Studio.

Wyróżniki warsztatu

  • Przeprowadzone przez autora popularnej książki Pro .NET Memory Management
  • Solidna dawka praktyki związanej z programowaniem I diagnostyką, wraz z porządną dawką wiedzy teoretycznej

Program Warsztatu eksperckiego

Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.

  1. Podstawowe pojęcia
    1. ręczne i automatyczne zarządzanie pamięcią
    2. system operacyjny, pamięć wirtualna i proces .NET
  2. Partycjonowanie pamięci
    1. generacje - jaki stan jest zdrowy?
    2. Small and Large Object Heap - co musimy wiedzieć?
    3. segmenty - czy powinniśmy się przejmować?
  3. Alokacje
    1. jak alokacja działa w SOH i LOH - czy naprawdę jest tania?
    2. najczęstsze źródła alokacji i ich unikanie
    3. stackalloc - poznaj super tani alokator
  4. Odśmiecanie pamięci
    1. jak to działa - fazy Mark, Plan, Sweep i Compact
    2. OutOfMemoryException - kiedy, dlaczego i jak diagnozować?
    3. wyciek pamięci
    4. tryby Server vs Workstation - który wybrać?
    5. tryby Background vs Non-concurrent - który wybrać?
    6. kontrola GC z kodu
  5. Czas życia obiektów
    1. explicit cleanup - interfejs IDisposable i tzw. "Disposable pattern"
    2. implicit cleanup - finalizacja
    3. weak references
  6. Zaawansowane tematy
    1. używanie struktur - po co?
    2. ref structs - szczególny przypadek struktur
    3. Span i Memory - nowi przyjaciele wydajności
    4. klasa Unsafe i jej potężne możliwości
    5. Pipelines - nowy nabytek w .NET
  7. Data-oriented design
    1. projektowanie aplikacji pod kątem dostępu do pamięci
    2. metody taktyczne (lokalne)
    3. metody strategiczne (globalne)
  8. Automatyzacja diagnostyki
    1. biblioteka ClrMD - do potężnej diagnostyki
    2. biblioteka TraceEvent - do potężnego monitoringu (w tym Azure)


Pobierz program w formacie PDF

Trenerzy

Poznaj ekspertów, którzy mogą poprowadzić Twój Warsztat.

Materiały związane z warsztatem

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

  • Jak przestałem sie bać i pokochałem przetwarzanie równoległe
    KATEGORIE: Platforma .NET

    Procesowanie wielowątkowe od dawna nie jest już tylko optymalizacją ale koniecznością. Wprowadzenie biblioteki Task Parallel Library (TPL) najlepiej znanej z .AsParallel() dodanego do LINQ może wydawać się rozwiązaniem wszystkich problemów, jednak próba użycia go przy zrównoleglaniu dużych procesów prawdopodobnie skończy się procesorem zajętym głównie przełączaniem się między wątkami. Tu na pomoc przychodzi Task Parallel Library Dataflow. Zaczniemy od idei, przez elementy z których składa się TPL Dataflow, po ważne ustawienia jak i sposoby na kontrolowanie pamięci i zużycia procesora. To poparte przykładami na żywo i własnym doświadczeniem.

    Autor Bottega:

    Szymon Warda

    Powiązane szkolenia dedykowane:

    (zobacz wszystkie powiązane...)

    Zarządzanie pamięcią w .NET

  • Memento memori
    KATEGORIE: Platforma .NET

    Refleksja nad tematem zarządzania pamięcią we współczesnym świecie IT. Czy w czasach terabajtowych dysków i gigabajtów RAM-u, mamy się w ogóle czym przejmować? czy jesteśmy już na etapie “wolności od pamięci”, która “po prostu jest”? A jeśli jednak nie do końca, to jak ten temat wpływa na rozwój oprogramowania? Jak wpływa na architekturę, na kod który piszemy? Czego powiniśmy być świadomi? Zapraszam na opowieść mająca przedstawić obecny stan tej – zaskakująco ciekawej – dziedziny wiedzy. Mam nadzieję zainspirować do przypomnienia sobie, że pamięć jednak istnieje i że jej świadomość może być ciekawa i ważna.

    Autor Bottega:

    Konrad Kokosa

    Powiązane szkolenia dedykowane:

    (zobacz wszystkie powiązane...)

    Zarządzanie pamięcią w .NET

  • Pamięć w .NET - od ogółu do szczegółu
    KATEGORIE: Platforma .NET

    .NET ma zarządzaną pamięć, to wie każdy. Ale jak to wszystko naprawdę działa? Czy mamy się w ogóle czym przejmować? Czy znajomość szczegółów implementacyjnych Garbage Collectora jest nam do czegoś potrzebna i co z tego wynika dla codziennego życia .NET deva? Przyglądając się temu jak CLR zarządza pamięcią z tej i owej strony poznamy przy okazji kilka smaczków, ciekawostek ale i zagrożeń.

    Autor Bottega:

    Konrad Kokosa

    Powiązane szkolenia dedykowane:

    (zobacz wszystkie powiązane...)

    Zarządzanie pamięcią w .NET

  • ETW w służbie programisty .NET
    KATEGORIE: Platforma .NET

    Kto debuggował aplikację za pomocą wypisywania do logów "krok1", "krok2", choć pewnie używając bardziej niewybrednych słów? Dobrze wiemy jak potrzebna jest czasem diagnostyka naszej aplikacji. Najczęściej właśnie na tym środowisku, gdzie o nią najtrudniej - na środowisku produkcyjnym. Chciałem przedstawić Wam potężny, aczkolwiek wciąż trochę niedoceniany mechanizm Event Tracing for Windows, który dostarcza ogromu informacji o działaniu komputera, sytemu oraz - co najbardziej nas interesuje - aplikacji .NET. I to wszystko całkiem za darmo!

    Autor Bottega:

    Konrad Kokosa

    Powiązane szkolenia dedykowane:

    (zobacz wszystkie powiązane...)

    Zarządzanie pamięcią w .NET

Zamów warsztat

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.