לאחר שהתקנתי מחדש את 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 מאוד ישירה:
- להשאיר את אותה תיקיית התקנה ואת אותן הגדרות בלי שינוי
- למדוד קודם את זמן ההפעלה של
22777 - להחליף רק את
PotPlayer64.dll - למדוד שוב
- לבסוף להחזיר את
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 ms814 ms815 ms
כלומר, בפועל חוזר למצב של “נפתח מייד”.
פידבק החוצה
על הדרך סידרתי את הבדיקה הזו כחומר ציבורי, וכבר שלחתי מייל דו־לשוני (קוריאנית/אנגלית) לכמה כתובות קשר ציבוריות של Kakao, בתקווה שזה יגיע לצוות הפיתוח או ה־release של PotPlayer x64.
חומר ציבורי:
- מאגר GitHub:https://github.com/constansino/potplayer-x64-22777-startup-regression
- קישור PR:https://github.com/constansino/potplayer-x64-22777-startup-regression/pull/1
מסקנה
הליבה של הבעיה הזו אינה “קילקלתי את התצורה של PotPlayer”, אלא:
- ל־
PotPlayer64.dll 1.7.22777.0עצמו יש רגרסיית זמן הפעלה - חזרה ל־
1.7.22775.0משחזרת באופן יציב את מהירות ההפעלה LAV Filters + madVRאינם הגורם העיקרי
אם בהמשך Kakao אכן יתקנו את הרגרסיה הזו, אוסיף עדכון נוסף.