Journal de diagnostic du démarrage plus lent de PotPlayer x64 1.7.22777 : le problème se situe dans l’initialisation précoce de PotPlayer64.dll

Après avoir réinstallé PotPlayer récemment et ajouté LAV Filters + madVR, j’ai constaté que le PotPlayer fraîchement installé devient nettement plus lent à chaque lancement : il faut environ 9 secondes pour que la fenêtre principale apparaisse ; alors que l’ancienne installation sauvegardée localement s’ouvre presque instantanément.

Ce billet consigne le problème lui-même, le processus de diagnostic, la cause racine finalement identifiée, ainsi qu’un correctif réellement applicable.

Symptômes

  • PotPlayer x64 nouvellement installé : démarrage à froid jusqu’à l’apparition de la fenêtre principale ~ 9.2s à 9.6s
  • Ancienne installation sauvegardée localement : démarrage à froid ~ 0.65s à 0.85s
  • Intuitivement, les premiers suspects étaient LAV / madVR / 播放列表 / 联网检查 / 代理, mais au final aucun n’était la cause principale

Pistes d’abord écartées

J’ai d’abord effectué des tests d’isolement sur les facteurs externes courants :

  • Vider ou supprimer la configuration utilisateur de PotPlayer
  • Vider la playlist par défaut
  • Désactiver la mise à jour automatique et les options liées au navigateur
  • Bloquer temporairement l’accès réseau sortant de PotPlayer
  • Vérifier la connexion via proxy
  • Vérifier si LAV Splitter / LAV Video / LAV Audio / madVR n’affectent que la chaîne de lecture

Ces manipulations n’ont quasiment pas amélioré le temps de démarrage, ce qui indique que le ralentissement ne vient pas de ces couches de configuration.

Découverte clé

En comparant ensuite point par point la nouvelle installation et la sauvegarde locale, j’ai constaté que la vraie différence n’était pas PotPlayerMini64.exe, mais la DLL cœur :

  • Installation actuelle : PotPlayer64.dll 1.7.22777.0
  • Installation sauvegardée : PotPlayer64.dll 1.7.22775.0
  • Le hash de PotPlayerMini64.exe est identique des deux côtés
  • Le hash de PotPlayer64.dll diffère entre les deux
  • Les deux DLL portent une signature officielle Kakao

Autrement dit, la sauvegarde n’est pas un paquet tiers modifié : ce sont toujours des fichiers officiels, seule la sous-version de la DLL cœur change.

Le test d’isolement le plus décisif

J’ai réalisé un test A/B très direct :

  1. Conserver le même répertoire d’installation et la même configuration
  2. Mesurer d’abord le démarrage de la version 22777 actuelle
  3. Remplacer uniquement PotPlayer64.dll
  4. Mesurer à nouveau
  5. Enfin, remettre 22777 et mesurer une troisième fois

Le résultat est sans ambiguïté :

  • Base 22777 : 9510 ms
  • Remplacement uniquement par 22775 : 771 ms
  • Retour à 22777 : 9626 ms

Cela cloue pratiquement le problème sur PotPlayer64.dll 1.7.22777.0 lui-même, et non sur d’autres facteurs d’environnement.

Localisation plus fine

Pour comprendre « où dans la DLL ça ralentit », j’ai également fait un échantillonnage des threads au démarrage et une comparaison des chronologies.

Ce que j’ai observé :

  • L’ancienne version affiche la fenêtre principale en ~ 0.65s, puis seulement ensuite commence à se connecter au proxy local
  • La nouvelle version n’affiche la fenêtre principale qu’au bout de ~ 9.17s, et l’accès réseau a lieu après l’apparition de la fenêtre
  • Donc ce n’est pas « le réseau qui bloque d’abord », mais plutôt « le processus consomme ~ 8 secondes avant même que la fenêtre n’apparaisse »

En regardant ensuite l’échantillonnage du thread le plus actif :

  • Pendant le démarrage de la version lente, le thread principal en temps passé reste longtemps sur PotPlayer64.dll + 0x1C1F2AE
  • Cet offset se trouve dans la section .themida du PE
  • La version rapide ne fait que traverser brièvement la zone protégée, puis passe à l’initialisation GUI normale

Au vu des éléments, il est plus probable que la DLL cœur x64 1.7.22777 ait subi une régression de performance au démarrage pendant la phase précoce de protection/initialisation, plutôt qu’un problème lié à la configuration des fonctionnalités du lecteur.

Je le précise : c’est un jugement d’ingénierie fondé sur des mesures et des échantillonnages, pas une « conclusion absolument certaine » obtenue avec le code source. Mais les indices sont suffisamment solides pour au moins écarter LAV, madVR, la playlist ou les réglages réseau.

Correctif pratique

Sur ma machine, la méthode la plus fiable n’est pas de patcher de force une DLL propriétaire, mais de verrouiller PotPlayer64.dll de l’installation actuelle sur la version 1.7.22775.0 signée officiellement.

Après cela, les nouvelles mesures de démarrage sur cette machine sont d’environ :

  • 851 ms
  • 814 ms
  • 815 ms

Autrement dit, on revient globalement à un lancement « instantané ».

Retour vers l’extérieur

J’ai également synthétisé cette enquête en documents publics, et j’ai déjà envoyé un e-mail bilingue coréen/anglais à plusieurs adresses de contact publiques de Kakao, en espérant que cela soit transmis à l’équipe de développement ou de publication de PotPlayer x64.

Documents publics :

Conclusion

Le cœur du problème n’est pas « j’ai cassé la configuration de PotPlayer », mais :

  • PotPlayer64.dll 1.7.22777.0 présente une régression de démarrage
  • Revenir à 1.7.22775.0 permet de restaurer de manière stable la vitesse de démarrage
  • LAV Filters + madVR n’est pas la cause principale

Si Kakao corrige réellement cette régression par la suite, j’ajouterai une mise à jour.