1 votes

Redémarrer une application lorsqu'elle consomme trop de mémoire

Certaines applications commencent par avoir une petite empreinte mémoire, mais elles finissent par occuper beaucoup trop de RAM. Existe-t-il un moyen de détecter automatiquement qu'une application atteint un certain seuil, puis de la tuer et de la relancer ?

Je sais que je peux voir l'empreinte mémoire sur le moniteur d'activité, mais cela ne semble pas pouvoir être fait par AppleScript. Je peux également voir l'empreinte mémoire d'une application à l'aide de la commande ps aux mais ses chiffres ne semblent pas correspondre à ceux de Activity Monitor.

J'apprécierais toute aide à ce sujet

0 votes

Avez-vous une application spécifique en tête ? Le redémarrage de Safari ou de Contacts peut être très différent du redémarrage d'une application d'édition avec des documents non sauvegardés.

0 votes

@patrix : bonne question. J'ai utilisé fluidapp (une application de navigateur spécifique à un site) pour créer plusieurs applications pour facebook, reddit, stackoverflow, etc. Ce billet est motivé par le fait que Facebook est un gros consommateur de mémoire. Cependant, j'aimerais idéalement que cela soit indépendant de l'application, avec éventuellement un message d'alerte, laissant à l'utilisateur final le soin de donner son accord final pour le redémarrage de l'application. Est-ce que cela a un sens ?

1voto

Bob Points 11

Vous pouvez essayer cleanMyMac. Il vous montrera la mémoire vive disponible et vous permettra de l'effacer. Vous pouvez également créer une tâche cron qui exécute sudo purge pour essayer de résoudre certains de ces problèmes. (bien que je sache que cette solution n'est pas sans ses détracteurs et ses sceptiques)

À mon avis, Applescript lui-même est un gros consommateur de mémoire.

J'ai essayé d'OCR un grand nombre de documents via un Applescript qui appelle Abbyy Fine Reader. Il fonctionne pendant environ une heure, puis il plante le mac (juste avant que je reçoive une erreur disant que toute la mémoire disponible de l'application a été utilisée).

J'ai d'abord pensé qu'il s'agissait d'un problème lié à Abbyy et à la taille des documents. Mais il s'avère que le problème vient en fait d'Applescript. Mon système dispose de 16 Go de mémoire. Mais Applescript l'utiliserait en moins d'une heure avec ce vidage de document.

J'ai même essayé de pirater les choses en créant un cronjob qui exécute sudo purge toutes les deux minutes. Cela a aidé. Mais en fin de compte, pas grand-chose. La seule chose qui a permis de débloquer la situation de la mémoire a été de quitter Applescript.

Tout ceci nous a amené à passer au contrôle d'applications Mac avec ruby en utilisant le ruby-gem rb-scpt. (Cette gemme nous permet de contrôler n'importe quelle application scriptable en applescript via ruby).

https://rubygems.org/gems/rb-scpt/versions/1.0.1

La solution ruby script a corrigé le problème des plantages répétés dus au manque de mémoire disponible. J'ai traité ces documents pendant des jours (pas des heures) sans le moindre problème. Ma mémoire disponible n'a pas bougé depuis que j'ai lancé le script. (mémoire surveillée par CleanMyMac)

Applescript est parfait pour les petits travaux. Mais il n'est tout simplement pas à la hauteur d'un travail sérieux.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X