Java Advanced II: High-Performance Java - קורס RUB 67,500. ממרכז הדרכה IBS, הדרכה 40 שעות, תאריך 29 בינואר 2024.
Miscellanea / / December 04, 2023
פאבל עובד בלוקסופט מאז 2005. במהלך תקופה זו, הוא לקח חלק במספר פרויקטים עבור חברות רוסיות וזרות מובילות, כגון בואינג, Russian Post, DHL, MVideo. נכון לעכשיו, הוא ממלא את התפקיד של מהנדס תוכנה מוביל בפרויקט לתמיכה ברשת הקמעונאית הגדולה ביותר שמוכרת מוצרי אלקטרוניקה ומכשירי חשמל ביתיים ברוסיה. העניין העיקרי של פאבל הוא פיתוח יישומי Java הניתנים להרחבה ומתן פתרונות טכניים לשיפור הביצועים והאמינות של האפליקציות.
נושאים מכוסים:
מודול מספר 1. סקירת כוונון ביצועים - 5 שעות.
שיטות עבודה כלליות;
אסטרטגיות כוונון ביצועים;
מדדי ביצועים;
איך לשפר את הפרודוקטיביות?
כלי מדידת ביצועים;
JMeter;
בדיקת עומס באמצעות JMeter;
כיצד לשפר את הפרודוקטיביות באמצעות ארכיטקטורה?
שיטות עבודה מומלצות לשיפור ביצועי קוד.
שיעורי בית - שעתיים.
מודול 2. אלגוריתמי GC – 5 שעות.
שימוש בזיכרון של אובייקטי Java;
גישות כלליות ואלגוריתמים של אוספי אשפה;
אוסף אשפה סדרתי GC;
אספן אשפה מקביל GC;
אוסף אשפה CMS;
אספן אשפה G1;
אספן אשפה שננדואה;
כוונון אוספי אשפה;
כלים לאיסוף וניתוח מדדי איסוף אשפה;
בחירת אוסף האשפה האופטימלי.
מודול 3. מהדר HotSpot JIT – 5 שעות.
קומפילציה של JIT;
Java bytecode;
קומפילציה רב שכבתית;
מטמון הקוד והכוונון שלו;
אופטימיזציה של קוד;
ביטול אופטימיזציה של קוד ומתי היא מתרחשת;
כלי JITWatch לניתוח תוצאות הידור;
סוגי אופטימיזציות;
אופטימיזציות ספקולטיביות;
הגדרות מהדר;
קומפילציה של AOT.
שיעורי בית - שעתיים.
מודול 4. דגלי JVM - 3 שעות.
מטרה וקטגוריות של דגלי JVM;
דגלים כלליים;
דגלים הקשורים למחרוזות;
דגלי ניהול זיכרון;
נקודות בטיחות ודגלים הקשורים אליהם;
TLAB ודגלים הקשורים אליהם;
תוכנית כוונון JVM.
מודול 5. בדיקת ביצועי אלגוריתמים (בנצ'מרקינג) באמצעות JMH – 2 שעות.
מהו בנצ'מרקינג;
מבוא ל-JMH;
JMH API;
דוגמאות לא טריוויאליות;
יישום JMH בפועל.
שיעורי בית - שעתיים.
מודול 6. שימוש בזיכרון מחוץ לערימה (זיכרון מחוץ לערמה) – 3 שעות.
מה זה sun.misc. מְסוּכָּן;
שיטות לא בטוחות;
ביצועי זיכרון מקורי;
יצירת מבני נתונים בזיכרון מקורי;
הערכת ביצועי זיכרון מקורי והשוואה לזיכרון ערימה;
Promising Memory Access API מבטיח.
מודול 7. סדרה - שעתיים.
סדרות JSON (GSON, Jackson);
סדרות בינאריות (Protobuf, Jackson Smile, Kryo, FST, One NIO);
השוואת הביצועים של סריאלייזרים שונים.
מודול 8. פרופיל Java – 4 שעות.
מתי ואיך עושים פרופילים?
דגימות ופרופילי מכשור;
שימוש ב-Java VisualVM ליצירת פרופילים;
יצירת פרופילים עם Spring AOP;
יצירת פרופילים עם IDEA ופרופיל אסינכרון;
מקליט טיסה של Java;
ניתוח של יומני Java Flight Recorder באמצעות Mission Conrol;
יצירה ורישום של אירועי JFR מותאמים אישית;
שימוש בסוכני Java להטמעת קוד ולהקלטת אירועים ב-Java Flight Recorder;
כתיבת תוכניות לניתוח אוטומטי של יומני JFR;
איסוף וניתוח שאילתות SQL באמצעות JFR;
איסוף וניתוח של בקשות REST באמצעות JFR.
שיעורי בית - שעתיים.
מודול 9. ניטור וניתוח נתוני ערימה. דליפות זיכרון – שעתיים.
כלי ניתוח נתונים בזיכרון;
סימנים של דליפות זיכרון;
הגורמים העיקריים לדליפות זיכרון;
חפש וזיהוי דליפות זיכרון.
מודול 10. GraalVM – 3 שעות
מערכת אקולוגית GraalVM;
זמן ריצה GraalVM;
Polyglot API;
אוסף ותמונה מקורית;
אמות מידה.
מודול 11. שמירה במטמון ב-Java Applications - 3 שעות.
דפוסי שמירה במטמון;
השוואה של ממשקי API של מטמון;
שמירת שאילתות מסד נתונים;
שמירה במטמון של בקשות HTTP;
מדדים בסיסיים והגדרות של ספריות אחסון במטמון;
השוואה בין ספריות מטמון פופולריות;
שמירה במטמון ברמת השירות;
שירותי קפיץ במטמון;
יישומים המשתמשים במטמונים ברמות שונות.
מודול 12. סקירה של גישות אחרות לשיפור הפרודוקטיביות - 3 שעות.
תכנות מקביל (בריכות חוטים, חוטים מקבילים, מבנה חיבור מזלג);
תכנות אסינכרוני;
תכנות ריאקטיבי (Reactor, VertX);
אופטימיזציה של עבודה עם מסדי נתונים;
מחשוב ענן (microservices, Spring Cloud);
אמות מידה ומסקנות.