Cod: JVA-028
Durata: 16 ore
Durata: 16 ore
Descriere
Toate aplicatiile Java trebuie sa fie eficiente in ceea ce priveste utilizarea memoriei si viteza de procesare. Insa alocarea unei memorii mai mari sau adaugarea unui CPU mai puternic nu este de fiecare data cea mai buna solutie.Java Performance and Tuning este un curs intensiv adresat programatorilor cu experienta care vor sa descopere cum sa tuneze aplicatiile Java – alegand intre o alocare corecta a memoriei, cel mai eficient algoritm de Garbage Collector sau cea mai potrivita metoda de a folosi JDK API-ul.
Fiecare programator ar trebui sa inteleaga cum sa creasca eficienta unui program din punct de vedere al memoriei sau performantei. De asemenea, ar trebui sa inteleaga ceea ce se intampla in cadrul Java Virtual Machine. Toate aceste informatii ne ajuta sa detectam, reparam sau sa prevenim probleme ce tin de alocarea memoriei sau timpi de procesare scazuti.
Acest curs abordeaza subiecte legate de arhitectura JVM-ului, execution engine, memory model, garbage collectors, JVM tuning, JVM profiling si troubleshooting. Cu ajutorul mai multor studii de caz vom analiza fiecare element din perspectiva performantei si best practices in ceea ce priveste performanta.
Filosofia din spatele trainingului este ca un developer bun nu trebuie doar sa scrie un cod curat. El trebuie sa fie capabil sa analizeze codul si impactul pe care l-ar putea avea asupra performantei sistemului.
Subiecte curs
Arhitectura JVM- Ce este JVM
- Ciclu de viata JVM
- Arhitectura JVM
- Runtime Data Areas
Class Loader
- Model ierarhic
- Cyclic delegation trap
- Class Data Sharing
- Studiu de caz
Execution Engine
- Bytecode si Practica
- Bytecode Interpreter
- Ahead Of Time Compiler
- Just In Time Compiler
- Studiu de caz
- Sun JVM Source Code & Studiu de caz
Structura memoriei Java
- Stack
- Code Cache
- Heap
- PermGen
- Metaspace & Compressed Class Space
- Studiu de caz
Java Garbage Collection
- Garbage Collection Concepts
- Tehnici Heap Allocation
- JVM Safepoint
- HotSpot Garbage Collectors
- Train Collector
- Serial Collector
- Parallel Collector
- Parallel Compacting Collector
- Concurrent Mark-Sweep Collector
- Garbage First Collector
- Studiu de caz
Garbage Collection Friendly Programming
- Object Reference Types
- Strong reference
- Soft reference
- Weak Reference
- Phantom Reference
- Studiu de caz
- Memory Leak
- Studiu de caz
JVM Tuning
- Abordare tuning
- Parametri tuning
- Studiu de caz
JVM Profiling
- OS built-in tools (e.g. typeperf, PerfMon, ResMon, vmstat, iostat)
- JDK Tools (e.g. VisualVM, JMC, jps, jstack, jmap, jstat, jconsole)
- Studiu de caz
- Eclipse Memory Analyzer
- Studiu de caz
Studiu de caz
- Studiu de caz - Heap Dump Analyzing
- Studiu de caz - Thread Dump Analyzing
Performance Friendly Programming (Tips & Tricks)
- Unsafe
- Tehnici sincronizare
- Memory Access Patterns
- Java NIO
- Exceptii
- Logging
- Collections
Obiective
Scopul acestui curs este sa ajute participantii sa inteleaga Java Virtual Machine din punct de vedere al:- Execution Engine
- Memory Model
- Garbage Collectors
- Performance JDK APIs
- Performance tactics
- Profiling tools
- Tehnicilor de troubleshooting
Familiarizarea cu instrumentele de profilare (existente deja in OS sau oferite de JDK) si tehnicile de troubleshooting.
Performanta Java este in stransa legatura cu cateva tactici cheie si JDK API-ul pe care fiecare developer ar trebui sa le stie. In curs vom prezenta cele mai bune tactici precum si JDK API-ul.
Public tinta
Programatori Java cu experienta interesati sa invete cum sa creasca performanta aplicatiilor, cum functioneaza intern JVM-ul, cum sa tuneze si profileze JVM-ul si cum sa scrie codul eficient.Cerinte curs
O buna intelegere a principiilor Java Core- Collections
- Multithreading
- Object creation lifecycle
- Garbage Collector principles