תיעוד בדיקת האטה בהפעלה של PotPlayer x64 1.7.22777: הבעיה באתחול המוקדם של PotPlayer64.dll

לאחר שהתקנתי מחדש את PotPlayer והשלמתי LAV Filters + madVR, גיליתי ש־PotPlayer שהותקן מחדש נהיה איטי משמעותית בכל הפעלה: חלון היישום הראשי מופיע רק אחרי בערך 9 שניות; בעוד שההתקנה הישנה שגיביתי מקומית נפתחת כמעט מייד.

הפוסט הזה מתעד את הבעיה עצמה, תהליך הניפוי, זיהוי גורם השורש, ואת פתרון התיקון שבאמת עובד.

תסמינים

  • PotPlayer x64 שהותקן כעת: אתחול קר עד שהחלון הראשי נראה בערך 9.2s עד 9.6s
  • ההתקנה הישנה מהגיבוי המקומי: אתחול קר בערך 0.65s עד 0.85s
  • אינטואיטיבית חשדתי קודם כל ב־LAV / madVR / פלייליסט / בדיקת רשת / פרוקסי, אבל בסוף אלה לא היו הגורם העיקרי

כיוונים שנשללו קודם

קודם ביצעתי סדרת בדיקות בידוד לכל גורמי החוץ הנפוצים:

  • ניקוי או הסרה של הגדרות המשתמש של PotPlayer
  • ניקוי הפלייליסט ברירת המחדל
  • כיבוי עדכון אוטומטי ואפשרויות שקשורות לדפדפן
  • חסימה זמנית של יציאת PotPlayer לרשת
  • בדיקת חיבור הפרוקסי
  • אימות האם LAV Splitter / LAV Video / LAV Audio / madVR הם רק בעיה בשרשרת הניגון

הפעולות האלה כמעט שלא שיפרו את זמן ההפעלה, מה שמרמז שהאיטיות אינה בשכבת ההגדרות הללו.

הגילוי המכריע

בהמשך השוויתי פריט־פריט בין ההתקנה החדשה לגיבוי המקומי, וגיליתי שההבדל האמיתי אינו ב־PotPlayerMini64.exe אלא ב־DLL הליבה:

  • ההתקנה הנוכחית: PotPlayer64.dll 1.7.22777.0
  • התקנת הגיבוי: PotPlayer64.dll 1.7.22775.0
  • ה־hash של PotPlayerMini64.exe זהה בשני הצדדים
  • ה־hash של PotPlayer64.dll שונה בין הצדדים
  • לשני ה־DLL יש חתימה רשמית של Kakao

כלומר, הגיבוי אינו חבילה צד־שלישי מוזרה—אלו עדיין קבצים רשמיים, רק שגרסת המינור של DLL הליבה שונה.

בדיקת הבידוד החשובה ביותר

ביצעתי בדיקת A/B מאוד ישירה:

  1. להשאיר את אותה תיקיית התקנה ואת אותן הגדרות בלי שינוי
  2. למדוד קודם את זמן ההפעלה של 22777
  3. להחליף רק את PotPlayer64.dll
  4. למדוד שוב
  5. לבסוף להחזיר את 22777 ולמדוד פעם נוספת

התוצאות היו חד־משמעיות:

  • בסיס 22777: 9510 ms
  • החלפה בלבד ל־22775: 771 ms
  • החלפה חזרה ל־22777: 9626 ms

זה למעשה נעל את הבעיה על PotPlayer64.dll 1.7.22777.0 עצמו, ולא על גורמי סביבה אחרים.

איתור קצת יותר מדויק

כדי להבין “איפה בתוך ה־DLL זה איטי”, ביצעתי גם דגימות ת’רדים בזמן ההפעלה והשוואת תזמון.

התצפיות:

  • בגרסה הישנה בתוך בערך 0.65s החלון הראשי כבר מופיע, ורק אחר כך היא מתחילה להתחבר לפרוקסי המקומי
  • בגרסה החדשה החלון הראשי מופיע רק אחרי בערך 9.17s, והתקשורת לרשת מתרחשת אחרי שהחלון כבר יצא
  • לכן זה לא “נתקע קודם על רשת”, אלא “מבזבז בערך 8 שניות בתוך התהליך עצמו לפני שהחלון מופיע”

ובהסתכלות על דגימת הת’רד העמוס:

  • בזמן ההפעלה בגרסה האיטית, הת’רד העיקרי נשאר זמן רב ב־PotPlayer64.dll + 0x1C1F2AE
  • ה־offset הזה נמצא במקטע .themida בתוך ה־PE
  • הגרסה המהירה רק חולפת במהירות דרך האזור המוגן, ואז נכנסת לאתחול GUI רגיל

לפי הראיות, זה נראה יותר כמו רגרסיית ביצועים בשלב ההגנה/אתחול המוקדם ב־DLL הליבה של x64 ב־1.7.22777, ולא בעיה של תצורת פונקציות הנגן עצמה.

חשוב להדגיש: זו מסקנה הנדסית המבוססת על מדידות ודגימות, לא “מסקנה ודאית מוחלטת” אחרי גישה לקוד המקור. אבל הראיות מספיק חזקות, ובכל מקרה אפשר לקבוע שזה לא בגלל LAV, madVR, הפלייליסט או הגדרות הרשת.

פתרון תיקון בפועל

במחשב שלי, הדרך היציבה ביותר היא לא לשנות בכוח DLL קנייני וסגור, אלא פשוט לקבע בהתקנה הנוכחית את PotPlayer64.dll חזרה ל־1.7.22775.0 עם חתימה רשמית.

אחרי זה, בדיקות ההפעלה החוזרות במחשב הנוכחי הן בערך:

  • 851 ms
  • 814 ms
  • 815 ms

כלומר, בפועל חוזר למצב של “נפתח מייד”.

פידבק החוצה

על הדרך סידרתי את הבדיקה הזו כחומר ציבורי, וכבר שלחתי מייל דו־לשוני (קוריאנית/אנגלית) לכמה כתובות קשר ציבוריות של Kakao, בתקווה שזה יגיע לצוות הפיתוח או ה־release של PotPlayer x64.

חומר ציבורי:

מסקנה

הליבה של הבעיה הזו אינה “קילקלתי את התצורה של PotPlayer”, אלא:

  • ל־PotPlayer64.dll 1.7.22777.0 עצמו יש רגרסיית זמן הפעלה
  • חזרה ל־1.7.22775.0 משחזרת באופן יציב את מהירות ההפעלה
  • LAV Filters + madVR אינם הגורם העיקרי

אם בהמשך Kakao אכן יתקנו את הרגרסיה הזו, אוסיף עדכון נוסף.