La fuite n'est pas due à votre ordinateur
Si vous vous êtes demandé si le problème venait de votre machine — un ancien pilote, des bizarreries de Windows 11, un onglet Chrome incontrôlable — ce n'est pas le cas. La fuite est interne à Monosnap et ce, depuis des années. Recherchez r/monosnap et vous trouverez fil de discussion après fil de discussion décrivant le même schéma.
Voici ce qui se passe en coulisses. Chaque fois que Monosnap capture une région, il alloue un tampon de trame (frame buffer) suffisamment grand pour contenir les données brutes des pixels. Pour un écran de 2560 x 1440, cela représente environ 14 Mo. Lorsque l'éditeur se ferme, ces tampons devraient être libérés vers le système d'exploitation. Dans Monosnap, ce n'est souvent pas le cas — ils sont conservés par le tas du moteur de rendu Electron, en attente d'un passage de récupération de mémoire (garbage collection) qui ne s'exécute jamais ou trop tard. Au cours d'une journée de travail avec plus de 40 captures, les tampons retenus s'accumulent en centaines de mégaoctets de RAM fantôme.
La solution est une application différente
L'architecture de Monosnap lie la fuite à Electron lui-même, et la corriger nécessiterait de réécrire le pipeline de capture. Cette réécriture n'a pas eu lieu depuis cinq ans. La solution pratique est un outil qui a été conçu sans ce problème dès le départ.
Maxisnap est basé sur PyQt6 et compilé avec PyInstaller en un seul exécutable Win32. Il n'y a pas de processus Chromium. Chaque capture alloue un QImage, l'éditeur y fait référence, et lorsque la fenêtre se ferme, la référence est supprimée et la mémoire est immédiatement restituée au système d'exploitation — car le modèle de propriété de PyQt et le comptage de références de Python libèrent tous deux la mémoire de manière proactive plutôt que d'attendre un GC générationnel.
Empiriquement : Maxisnap au repos au démarrage est d'environ 50 Mo. Après 72 heures de fonctionnement continu avec des captures régulières, il est toujours d'environ 50 Mo. Le graphique ci-dessus provient de journaux réels.
Procédure de migration
- 0:00Téléchargez Maxisnap. Accédez à la page de téléchargement. Un clic, 63 Mo.
- 0:15Quittez Monosnap. Faites un clic droit sur son icône dans la barre d'état système, choisissez Quitter. Regardez votre RAM chuter de 600 Mo.
- 0:30Exécutez l'installateur. Chemin d'installation par défaut, aucun redémarrage requis.
- 0:45Appuyez sur Ctrl+Alt+5. Votre première capture avec le même raccourci clavier que vous avez toujours utilisé. L'éditeur s'ouvre instantanément.
- 0:60Terminé. Collez vos identifiants SFTP/S3 dans les Paramètres si vous souhaitez télécharger sur un serveur.
Questions sur la fuite de mémoire
Je ne prends que 5 captures d'écran par jour. La fuite m'affecte-t-elle toujours ?
Moins sévèrement, mais oui. La mémoire au repos continue de croître car Monosnap interroge le presse-papiers et la barre d'état système même lorsque vous ne capturez pas. La croissance est plus lente en cas de faible utilisation mais ne s'arrête jamais.
Le redémarrage de l'application aide-t-il ?
Temporairement. Quittez et relancez, et vous êtes de retour à environ 180 Mo. Mais la plupart des utilisateurs qui remarquent la fuite en sont arrivés là parce qu'ils gardent leur outil de capture d'écran en marche toute la journée, et le redémarrer plusieurs fois est l'opposé de ce qu'ils souhaitent.
Qu'en est-il de Monosnap sur macOS ?
La fuite est moins sévère sur macOS car le modèle de mémoire diffère, mais les utilisateurs signalent toujours une croissance progressive. La version macOS de Maxisnap est expérimentale. Pour Windows, passez à Maxisnap dès aujourd'hui.
Votre RAM vous remerciera
Maxisnap est gratuit. L'installation prend 60 secondes. Les mêmes raccourcis clavier que vous utilisez déjà.
Télécharger MaxisnapArticles similaires : pourquoi il est devenu lent · correctif de blocage · alternative générale