J'ai une application écrite en Python et 'compilée' avec PyInstaller. Elle utilise également PyQt comme framework GUI.
Lancer cette application a un retard d'environ 10 secondes avant que la fenêtre principale ne se charge et ne s'affiche. Autant que je sache, cela n'est pas dû à la lenteur de mon code. Je soupçonne plutôt que cela est dû à l'initialisation de l'exécution de Python.
Le problème est que cette application est lancée avec un lanceur de tâches personnalisé / de la barre des tâches. L'utilisateur cliquera sur le bouton pour lancer l'application, ne verra rien se passer, puis cliquera ailleurs sur une autre application. Lorsque ma fenêtre d'application s'affiche, elle ne peut pas passer au premier plan en raison des règles pour SetForegroundWindow.
J'ai accès au code source du chargeur win32 de PyInstaller, du code Python, et même du code du lanceur.
Mes questions sont:
-
Comment puis-je faire démarrer cette application plus rapidement ?
-
Comment puis-je mesurer le temps passé dans les premières secondes de la durée de vie du processus ?
-
Quelle est la technique généralement acceptée pour réduire le temps jusqu'à ce que la première fenêtre s'affiche ?
J'aimerais éviter d'ajouter un écran de chargement pour deux raisons - premièrement, je pense que cela ne servira à rien (le surcoût est avant que le code Python ne s'exécute) et deuxièmement, je n'aime tout simplement pas les écrans de chargement :)
Si nécessaire, je pourrais probablement modifier le bouchon de chargeur PyInstaller pour créer une fenêtre, mais c'est une autre voie que je préférerais ne pas emprunter.