Vive la mémoire... LIBRE !!!
Vive la mémoire... LIBRE !!!
3 mars 2015, produit une version probablement définitive...
~~~~~~~~~~~~~~~
Bonjour !
Voici un petit utilitaire que Joe Arose (alias big_bass du côté anglophone du forum)
a publié il y a quelques années pour accompagner son Slaxer Pup 4.12. On en
trouve mention ici --
http://www.murga-linux.com/puppy/viewto ... ost#437336 --
mais j'aimerais retrouver le message original de Joe. J'ai remanié son script peu à
peu, jusqu'au résultat ci-joint. Le développement de ce script a été pour moi
l'occasion d'une belle exploration du langage bash d'ailleurs !
Explication :
Même si notre Linux gère bien la mémoire vive, il est parfois utile d'en libérer,
surtout si on se sert massivement de son ordi pour une tâche précise, avec un gros
logiciel tel opera, ou encore si on fait du développement intensif.
Il est normal que la mémoire vive diminue peu à peu, et souvent ce n'est qu'une
apparence, puisque la mémoire des programmes que vous utilisez à répétition au
cours de votre session est "versée dans des tampons" (à défaut de meilleure
expression !) plutôt que d'être calculée comme de la MEV libre par l'utilitaire "free".
Il arrive cependant qu'on veuille dégager de la mémoire vive, quand on a terminé
une tâche importante, dans opera, par ex., et qu'on veut passer à autre chose. Ou
encore parce que le gestionnaire de fenêtres semble ne pas vouloir "lâcher le
morceau". (Le par ailleurs merveilleux pekwm fait parfois le délicat à cet égard.)
Voici une solution simple et élégante à ce problème.
J'ai enrichi le script proposé par Joe, qu'il faisait afficher par une boîte
"gtkmessage". J'ai opté pour un affichage avec less et urxvt, qui permet, je crois,
une présentation plus esthétique. En outre, on peut mettre des renseignements
parlants dans le titre, grâce à urxvt, et dans le "pied de page", grâce à less.
Le script est bilingue anglais-français, mais ça ne se voit pas. Une seule langue est
affichée à l'utilisateur, celle de la variable LANG du système.
Le gain de mémoire est affiché en Mo dans le titre de la fenêtre, puis, si le fichier
d'échange est utilisé. En bas, une instruction pour fermer la fenêtre.
En passant, si le fichier d'échange est utilisé, votre ordi en prendra un coup côté
vitesse et performance. Vous le sentirez à coup sûr. Dans ce cas, à moins que vous
soyez maso, il vaut mieux enregistrer les tâches en cours et redémarrer l'appareil.
Nécessite l'utilitaire replaceit , une manière de sed, par P.L. Daniels comme
dépendance. Demandez-moi le fichier compilé si vous ne l'avez pas déjà.
J'utilise replaceit dans ce script pour traduire quelques termes fournis par
le logiciel "free" utilisé ici. Quand à ce "free", c'est un utilitaire GNU
présent dans tous les Linux, et non une dépendance externe.
En espérant que ce petit script vous sera utile. À la bonne vôtre !
musher0
~~~~~~~
J'ai remplacé mon script enligné ce matin par un plus "cohérent" (à mon goût à moi) à
http://murga-linux.com/puppy/viewtopic. ... ost#824987
~~~~~~~~~~~~~~~
Bonjour !
Voici un petit utilitaire que Joe Arose (alias big_bass du côté anglophone du forum)
a publié il y a quelques années pour accompagner son Slaxer Pup 4.12. On en
trouve mention ici --
http://www.murga-linux.com/puppy/viewto ... ost#437336 --
mais j'aimerais retrouver le message original de Joe. J'ai remanié son script peu à
peu, jusqu'au résultat ci-joint. Le développement de ce script a été pour moi
l'occasion d'une belle exploration du langage bash d'ailleurs !
Explication :
Même si notre Linux gère bien la mémoire vive, il est parfois utile d'en libérer,
surtout si on se sert massivement de son ordi pour une tâche précise, avec un gros
logiciel tel opera, ou encore si on fait du développement intensif.
Il est normal que la mémoire vive diminue peu à peu, et souvent ce n'est qu'une
apparence, puisque la mémoire des programmes que vous utilisez à répétition au
cours de votre session est "versée dans des tampons" (à défaut de meilleure
expression !) plutôt que d'être calculée comme de la MEV libre par l'utilitaire "free".
Il arrive cependant qu'on veuille dégager de la mémoire vive, quand on a terminé
une tâche importante, dans opera, par ex., et qu'on veut passer à autre chose. Ou
encore parce que le gestionnaire de fenêtres semble ne pas vouloir "lâcher le
morceau". (Le par ailleurs merveilleux pekwm fait parfois le délicat à cet égard.)
Voici une solution simple et élégante à ce problème.
J'ai enrichi le script proposé par Joe, qu'il faisait afficher par une boîte
"gtkmessage". J'ai opté pour un affichage avec less et urxvt, qui permet, je crois,
une présentation plus esthétique. En outre, on peut mettre des renseignements
parlants dans le titre, grâce à urxvt, et dans le "pied de page", grâce à less.
Le script est bilingue anglais-français, mais ça ne se voit pas. Une seule langue est
affichée à l'utilisateur, celle de la variable LANG du système.
Le gain de mémoire est affiché en Mo dans le titre de la fenêtre, puis, si le fichier
d'échange est utilisé. En bas, une instruction pour fermer la fenêtre.
En passant, si le fichier d'échange est utilisé, votre ordi en prendra un coup côté
vitesse et performance. Vous le sentirez à coup sûr. Dans ce cas, à moins que vous
soyez maso, il vaut mieux enregistrer les tâches en cours et redémarrer l'appareil.
Nécessite l'utilitaire replaceit , une manière de sed, par P.L. Daniels comme
dépendance. Demandez-moi le fichier compilé si vous ne l'avez pas déjà.
J'utilise replaceit dans ce script pour traduire quelques termes fournis par
le logiciel "free" utilisé ici. Quand à ce "free", c'est un utilitaire GNU
présent dans tous les Linux, et non une dépendance externe.
En espérant que ce petit script vous sera utile. À la bonne vôtre !
musher0
~~~~~~~
J'ai remplacé mon script enligné ce matin par un plus "cohérent" (à mon goût à moi) à
http://murga-linux.com/puppy/viewtopic. ... ost#824987
- Attachments
-
- Freed_RAM-MEV_libérée.jpg
- Les chiffres sont différents dans les deux barres de titre parce que je n'ai pas
préparé ces exemples en même temps ! ;-) - (61.25 KiB) Downloaded 714 times
Last edited by musher0 on Tue 03 Mar 2015, 05:40, edited 3 times in total.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
Bonjour,
Il existe dans Opera un nettoyeur intégré : Outils » Supprimer les données privées...
Voir aussi sur ce fil mes derniers pets de cleanup_memory et cleanup_mozilla basés également sur ceux de bigbass.
Cordialement,
Médor.
(sur la capture de cleanup_mozilla la purge a déjà été effectuée précédemment...).
Il existe dans Opera un nettoyeur intégré : Outils » Supprimer les données privées...
Voir aussi sur ce fil mes derniers pets de cleanup_memory et cleanup_mozilla basés également sur ceux de bigbass.
Cordialement,
Médor.
(sur la capture de cleanup_mozilla la purge a déjà été effectuée précédemment...).
- Attachments
-
- Capture_2015-01-30.jpg
- (55.25 KiB) Downloaded 653 times
-
- Capture_2015-01-30(1).jpg
- (67.06 KiB) Downloaded 652 times
Salut, Médor !
Il nous faudrait un index valable, dans le forum francophone ! Désolé, je n'avais
pas vu ton travail.
Mais bon, je ne regrette pas, j'ai beaucoup appris en faisant ma version. Et
puis, maintenant qu'elle est faite, je la trouve plus... transparente ?! Elle est
aussi totalement en français quand elle tourne en français !
À+
musher0
~~~~~~~~~
P.S. Pour être clair, dans mon message initial, Je donnais opera en exemple non
au point de vue des caches réservées à la navigation Internet -- ce qui est un
autre sujet -- mais au point de vue de son utilisation de la MEV. Il est vrai
qu'opera libère de la mémoire vive à sa fermeture, mais on peut libérer
5 % de plus en utilisant cleanup_memory. opera ne libère pas toute la mémoire
vive qu'il utilise, c'est un cas de "memory leak" partiel.
Je viens de le (re)faire : opera me laisse 66 % de MEV (sur 1,5 Go) quand il est
actif. Quand je quitte opera, la MEV monte à 74 % (aucune autre application ne
tourne, seulement les utilitaires habituels du système Puppy, plus le gest. de
fen. pekwm). Si j'utilise cleanup_memory tout de suite après la fermeture
d'opera, la MEV disponible monte de 74 % à 79 %. Il reste donc un 5 % de la
MEV totale occupée par opera quand il est actif, qu'il ne libère pas en quittant.
Il nous faudrait un index valable, dans le forum francophone ! Désolé, je n'avais
pas vu ton travail.
Mais bon, je ne regrette pas, j'ai beaucoup appris en faisant ma version. Et
puis, maintenant qu'elle est faite, je la trouve plus... transparente ?! Elle est
aussi totalement en français quand elle tourne en français !
À+
musher0
~~~~~~~~~
P.S. Pour être clair, dans mon message initial, Je donnais opera en exemple non
au point de vue des caches réservées à la navigation Internet -- ce qui est un
autre sujet -- mais au point de vue de son utilisation de la MEV. Il est vrai
qu'opera libère de la mémoire vive à sa fermeture, mais on peut libérer
5 % de plus en utilisant cleanup_memory. opera ne libère pas toute la mémoire
vive qu'il utilise, c'est un cas de "memory leak" partiel.
Je viens de le (re)faire : opera me laisse 66 % de MEV (sur 1,5 Go) quand il est
actif. Quand je quitte opera, la MEV monte à 74 % (aucune autre application ne
tourne, seulement les utilitaires habituels du système Puppy, plus le gest. de
fen. pekwm). Si j'utilise cleanup_memory tout de suite après la fermeture
d'opera, la MEV disponible monte de 74 % à 79 %. Il reste donc un 5 % de la
MEV totale occupée par opera quand il est actif, qu'il ne libère pas en quittant.
Last edited by musher0 on Sat 31 Jan 2015, 02:31, edited 1 time in total.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
Bonsoir,
Je viens de récupérer vos libérateurs de mémoire : pas utilie sur la machine où je suis qui a 2 Go de ram mais sur des machines avec 512 là c'est indispensable.
Merci à vous deux.
Je n'est pas installé replaceit et il n'est appremment pas présent mais tout est parfaitement en français !
J'en ai profité pour charger pekwm : je vais le visiter.
Philippe
Je viens de récupérer vos libérateurs de mémoire : pas utilie sur la machine où je suis qui a 2 Go de ram mais sur des machines avec 512 là c'est indispensable.
Merci à vous deux.
Je n'est pas installé replaceit et il n'est appremment pas présent mais tout est parfaitement en français !
J'en ai profité pour charger pekwm : je vais le visiter.
Philippe
Pour respecter l'esprit "open source" :
Bonne fin de soirée !
musher0
~~~~~~~~~
N.B. Déballer l'archive ci-jointe dans /root/my-applications/bin et rendre le script
déballé exécutable avant de s'en servir.
Code: Select all
#!/bin/ash
# $MAPPS/Systeme/cleanup_memory # simple tool for puppy linux to clean caches
# Joe Arose, alias "big_bass" # Mise en forme et ajouts par musher0,
# 20 mai 2013; rév. 30 janv. 2015.
####
WNDWMNGR="`cat /etc/windowmanager`";AEM="/root/my-applications/ae"
MMLBR="/tmp/mem_libr.txt";RMPL="replaceit --input=$MMLBR" # variables
if [ ${LANG:0:2} = "fr" ];then # param. less
MEV="'q' pour quitter =-=-=-= Mémoire vive libérée";AV="Avant";AP="Après"
else
MEV="'q' to quit =-=-=-= Freed RAM";AV="Before";AP="After"
fi # langues, 1
[ "`pidof -s aepanel`" ] && echo "aepanel existe" > /tmp/aepanelE && kill [ "`pidof -s aepanel`" ] &>/dev/null # si aepanel
> $MMLBR # Créer fichier à afficher
FreeMem ()
{
echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- .... -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" >> $MMLBR
if [ ${LANG:0:2} = "fr" ];then
echo " total utilisé libre partagé tampons" > /tmp/mevlibr
free | tail -n 3 >> /tmp/mevlibr
cat /tmp/mevlibr >> $MMLBR;rm -f /tmp/mevlibr
else
free >> $MMLBR
fi
echo . >> $MMLBR
}
a="`free | awk 'NR=="2" { print $4 }'`"
echo " $AV" >> $MMLBR
FreeMem # L'avant
sync ; echo 3 | tee /proc/sys/vm/drop_caches &>/dev/null;wait # Action
b="`free | awk 'NR=="2" { print $4 }'`"
echo " $AP" >> $MMLBR
FreeMem # L'après
d="`free | awk 'NR=="4" { print $3 }'`" # État du fichier d'échange
c="`expr $b - $a`" # calcul
if [ ${LANG:0:2} = "fr" ];then
[ "$d" = "0" ] && INCHANG="fich. d'échange non utilisé" || INCHANG="fichier d'échange UTILISÉ"
TITR="MEV libérée : $c Mo; $INCHANG."
# Traduction
$RMPL "-/+ buffers:" " ± tampons :";$RMPL Swap Éch.;$RMPL "Mem:" Mém.
else
[ "$d" = "0" ] && INCHANG="swap file not in use" || INCHANG="swap file IN USE"
TITR="Freed RAM: $c Mb; $INCHANG."
fi # langues, 2
# Afficher
G="g 72x15-250+300";CLR="fg white -bg AntiqueWhite4" # param. urxvt
TRNSP="tr -tint grey79 -sh 99";FNT="fn xft:Monaco:pixelsize=13:autohint=true"
urxvt -$G -$CLR -$TRNSP -$FNT -T "$TITR" +sb &>/dev/null -e less -L -~ -P "$MEV" $MMLBR
# Terminer # Replacer aepanel s'il y a lieu, et
[ -f /tmp/aepanelE ] && $AEM/aepanel-menu.sh && rm -f /tmp/aepanelE
rm -f $MMLBR # nettoyer
musher0
~~~~~~~~~
N.B. Déballer l'archive ci-jointe dans /root/my-applications/bin et rendre le script
déballé exécutable avant de s'en servir.
- Attachments
-
- cleanup_memory(1).zip
- Cette version fait exactement la même chose que celle enlignée ce matin, mais
j'en suis plus satisfait au plan de la cohérence et de l'économie des lignes.
(Mon p'tit côté "Ockham" est intervenu cet après-midi !) :-) - (1.3 KiB) Downloaded 494 times
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
Lancé dans le terminal le script rouspète parce qu'il ne trouve pas replaceit mais tout fonctionne tout de même et est en français !
J'ai ajouté systématiquement "-m" à la commande free comme indiqué par jplt et effectivement les affichages sont en mégaoctets : je garde comme ça.
C'est bien d'avoir "Avant", "Après" : je verrai bien une troisième ligne pour "Mémoire libérée". Oui, c'est pour les feignants qui n'arriveraient pas à calculer, ou alors pour rassurer les autres et vérifier que leur cerveau fonctionne correctement. Mais comme ça se serait complet je trouve.
Merci,
Philippe
EDIT : j'ai mis la ligne RMPL="replaceit --input=$MMLBR" en remarque et le script ne rouspète donc plus dans le terminal et tout est bien affiché en français tout de même.
J'ai ajouté systématiquement "-m" à la commande free comme indiqué par jplt et effectivement les affichages sont en mégaoctets : je garde comme ça.
C'est bien d'avoir "Avant", "Après" : je verrai bien une troisième ligne pour "Mémoire libérée". Oui, c'est pour les feignants qui n'arriveraient pas à calculer, ou alors pour rassurer les autres et vérifier que leur cerveau fonctionne correctement. Mais comme ça se serait complet je trouve.
Merci,
Philippe
EDIT : j'ai mis la ligne RMPL="replaceit --input=$MMLBR" en remarque et le script ne rouspète donc plus dans le terminal et tout est bien affiché en français tout de même.
Last edited by augras on Sat 31 Jan 2015, 15:14, edited 1 time in total.
Salut, Philippe.augras wrote:Oups ! La mémoire libérée apparaît directement dans le titre de la fenêtre
Désolé,
Philippe
Rappel amical : les lunettes, c'est sur le nez que ça se porte !
@jplt
Je ne me suis pas servi du param. -m à cause du calcul à la ligne
"expr machin moins chose". Je crains qu'avec des Mo, le calcul ne soit pas bon.
Merci à tous de vos observations. Je joins une archive *.pet de replaceit pour la
commodité de la chose.
musher0
- Attachments
-
- replaceit-1.0.0.pet
- Dépendance de ma version du script "cleanup_memory"
(requis pour la traduction de certains mots). - (7.54 KiB) Downloaded 463 times
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
Bonsoir,
Voici une capture du script que j'ai modifié rapidement...
La différence d'occupation de la swap est insignifiante même sans la modif. en Mo
Cordialement,
Médor.
Voici une capture du script que j'ai modifié rapidement...
La différence d'occupation de la swap est insignifiante même sans la modif. en Mo
Cordialement,
Médor.
- Attachments
-
- Capture_2015-01-31.jpg
- (32.58 KiB) Downloaded 562 times
Merci de ce petit test, Médor.Médor wrote:Bonsoir,
Voici une capture du script que j'ai modifié rapidement...
La différence d'occupation de la swap est insignifiante même sans la modif. en Mo
Cordialement,
Médor.
Donc, en réponse au souhait de jplt, voici une nouvelle version en Mo, que je viens
de préparer :
Code: Select all
#!/bin/ash
# $MAPPS/Systeme/cleanup_memory # simple tool for puppy linux to clean caches
# Joe Arose, alias "big_bass" # Mise en forme et ajouts par musher0,
# 20 mai 2013; rév. 30 et 31 janv. 2015.
####
WNDWMNGR="`cat /etc/windowmanager`";AEM="/root/my-applications/ae"
MMLBR="/tmp/mem_libr.txt";RMPL="replaceit --input=$MMLBR" # variables
if [ ${LANG:0:2} = "fr" ];then # param. less
MEV="'q' pour quitter =-=-=-= Mémoire vive libérée";AV="Avant";AP="Après"
else
MEV="'q' to quit =-=-=-= Freed RAM";AV="Before";AP="After"
fi # langues, 1
[ "`pidof -s aepanel`" ] && echo "aepanel existe" > /tmp/aepanelE && kill [ "`pidof -s aepanel`" ] &>/dev/null # si aepanel
> $MMLBR # Créer fichier à afficher
FreeMem ()
{
echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- .... -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" >> $MMLBR
if [ ${LANG:0:2} = "fr" ];then
echo "(En Mo) total utilisé libre partagé tampons" > /tmp/mevlibr
free -m | tail -n 3 >> /tmp/mevlibr
cat /tmp/mevlibr >> $MMLBR;rm -f /tmp/mevlibr
else
free >> $MMLBR
fi
echo . >> $MMLBR
}
a="`free -m | awk 'NR=="2" { print $4 }'`"
echo " $AV" >> $MMLBR
FreeMem # L'avant
sync ; echo 3 | tee /proc/sys/vm/drop_caches &>/dev/null;wait # Action
b="`free -m | awk 'NR=="2" { print $4 }'`"
echo " $AP" >> $MMLBR
FreeMem # L'après
d="`free -m | awk 'NR=="4" { print $3 }'`" # État du fichier d'échange
c="`expr $b - $a`" # ;c="`expr $c / 1024`" # calcul
if [ ${LANG:0:2} = "fr" ];then
[ "$d" = "0" ] && INCHANG="fich. d'échange non utilisé" || INCHANG="fichier d'échange UTILISÉ"
TITR="MEV libérée : ± $c Mo ; $INCHANG."
# Traduction
$RMPL "-/+ buffers:" " ± tampons :";$RMPL Swap Éch.;$RMPL "Mem:" Mém.
else
[ "$d" = "0" ] && INCHANG="swap file not in use" || INCHANG="swap file IN USE"
TITR="Freed RAM: ± $c Mb; $INCHANG."
fi # langues, 2
# Afficher
G="g 72x15-250+300";CLR="fg white -bg AntiqueWhite4" # param. urxvt
TRNSP="tr -tint grey79 -sh 99";FNT="fn xft:Monaco:pixelsize=13:autohint=true"
urxvt -$G -$CLR -$TRNSP -$FNT -T "$TITR" +sb &>/dev/null -e less -L -~ -P "$MEV" $MMLBR
# Terminer # Replacer aepanel s'il y a lieu, et
[ -f /tmp/aepanelE ] && $AEM/aepanel-menu.sh && rm -f /tmp/aepanelE
rm -f $MMLBR # nettoyer
Une nouvelle capture d'écran est jointe. Dans un souci d'équité, je devrais faire
profiter nos confrères anglophones de l'en-tête modifiée ?! Ou je n'altère pas ?
Un mot au sujet des lignes disant "aepanel". aepanel offre un menu "statique" au
gest. de fen. aewm, que j'essaie d'apprivoiser ces temps-ci. Vous pouvez enlever
ces lignes si vous n'utilisez pas aewm.
Encore une fois, merci, jplt. À+ !
musher0
- Attachments
-
- Freed_RAM-MEV_libérée(1).jpg
- (37.4 KiB) Downloaded 554 times
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
Re,
J'ai notamment modifié comme ci-dessous la ligne pour la purge suivant mon dernier message sur mon fil de mes pets de cleanup_memory & cleanup_mozilla (GUI).
J'affiche également : Avant (Mo] / Before (MB) | Après (Mo) / After (MB)
ici j'ai utilisé en entête : #!/bin/sh
Cordialement,
Médor.
J'ai notamment modifié comme ci-dessous la ligne pour la purge suivant mon dernier message sur mon fil de mes pets de cleanup_memory & cleanup_mozilla (GUI).
Code: Select all
sync ; echo 3 > /proc/sys/vm/drop_caches;wait # Action
J'affiche également : Avant (Mo] / Before (MB) | Après (Mo) / After (MB)
ici j'ai utilisé en entête : #!/bin/sh
Cordialement,
Médor.
Bonjour, le Monde / Hello, World!
À moins de gros pépin "pas-vu-pas-pris" -- voici la version finale. Inclut la mod.
appliquée aussi à la langue anglaise, et le retrait des lignes pour aepanel/aewm.
À la bonne vôtre !
musher0
À moins de gros pépin "pas-vu-pas-pris" -- voici la version finale. Inclut la mod.
appliquée aussi à la langue anglaise, et le retrait des lignes pour aepanel/aewm.
Code: Select all
#!/bin/ash
# $MAPPS/Systeme/cleanup_memory-non-aewm
# Pour l'immense majorité des gens qui n'utilisent pas aewm ! :)
#
# Original :
# cleanup_memory, simple tool for puppy linux to clean caches, by
# Joe Arose, alias / aka "big_bass" [De / From Puppy Slaxer 4.12.]
#
# Mise en forme et ajouts : musher0, 20 mai 2013; rév. 30-31 janv. 2015.
# Merci à jplt pour la suggestion de Mo, et à Médor pour le test.
####
WNDWMNGR="`cat /etc/windowmanager`";AEM="/root/my-applications/ae"
MMLBR="/tmp/mem_libr.txt";RMPL="replaceit --input=$MMLBR" # variables
if [ ${LANG:0:2} = "fr" ];then # param. less
MEV="'q' pour quitter =-=-=-= Mémoire vive libérée";AV="Avant";AP="Après"
else
MEV="'q' to quit =-=-=-= Freed RAM";AV="Before";AP="After"
fi # langues, 1
> $MMLBR # Créer fichier à afficher
FreeMem ()
{
echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- .... -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" >> $MMLBR
if [ ${LANG:0:2} = "fr" ];then
echo "(En Mo) total utilisé libre partagé tampons" > /tmp/mevlibr
else
echo "(In Mb) total used free shared buffers" > /tmp/mevlibr
fi
free -m | tail -n 3 >> /tmp/mevlibr
cat /tmp/mevlibr >> $MMLBR;rm -f /tmp/mevlibr
echo . >> $MMLBR
}
a="`free -m | awk 'NR=="2" { print $4 }'`"
echo " $AV" >> $MMLBR
FreeMem # L'avant
sync ; echo 3 | tee /proc/sys/vm/drop_caches &>/dev/null;wait # Action
b="`free -m | awk 'NR=="2" { print $4 }'`"
echo " $AP" >> $MMLBR
FreeMem # L'après
d="`free -m | awk 'NR=="4" { print $3 }'`" # État du fichier d'échange
c="`expr $b - $a`" # calcul
if [ ${LANG:0:2} = "fr" ];then
[ "$d" = "0" ] && INCHANG="fich. d'échange non utilisé" || INCHANG="fichier d'échange UTILISÉ"
TITR="MEV libérée : ± $c Mo ; $INCHANG."
# Traduction
$RMPL "-/+ buffers:" " ± tampons :";$RMPL Swap Éch.;$RMPL "Mem:" Mém.
else
[ "$d" = "0" ] && INCHANG="swap file not in use" || INCHANG="swap file IN USE"
TITR="Freed RAM: ± $c Mb; $INCHANG."
fi # langues, 2
# Afficher
G="g 72x15-250+300";CLR="fg white -bg AntiqueWhite4" # param. urxvt
TRNSP="tr -tint grey79 -sh 99";FNT="fn xft:Monaco:pixelsize=13:autohint=true"
urxvt -$G -$CLR -$TRNSP -$FNT -T "$TITR" +sb &>/dev/null -e less -L -~ -P "$MEV" $MMLBR
rm -f $MMLBR # nettoyer
musher0
- Attachments
-
- Freed_RAM-MEV_libérée(2).jpg
- À l'intention de nos confrères anglophones.
- (36.81 KiB) Downloaded 514 times
-
- cleanup_memory-non-aewm.zip
- (1.37 KiB) Downloaded 440 times
Last edited by musher0 on Sat 31 Jan 2015, 23:42, edited 1 time in total.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
Pourquoi pas de commande "tee" ?Médor wrote:Re,
J'ai notamment modifié comme ci-dessous la ligne pour la purge suivant mon dernier message sur mon fil de mes pets de cleanup_memory & cleanup_mozilla (GUI).Code: Select all
sync ; echo 3 > /proc/sys/vm/drop_caches;wait # Action
J'affiche également : Avant (Mo] / Before (MB) | Après (Mo) / After (MB)
ici j'ai utilisé en entête : #!/bin/sh
Cordialement,
Médor.
Je l'ai mis en ash parce que 25 % plus rapide que bash. Dixit technosaurus,
vérifié par mon expérience, chrono Puppy en main pour ainsi dire, et par celle
d'aragon, sur les scripts de menu (dans l'temps !).
À+
musher0
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
Voici mon script modifié suivant ma dernière capture et mes remarques de mon message précédent.
Cordialement,
Médor.
Code: Select all
#!/bin/sh
# $MAPPS/Systeme/cleanup_mem.sh # simple tool for puppy linux to clean caches
# Joe Arose, alias "big_bass" # Mise en forme et ajouts par musher0,
# 20 mai 2013; rév. 30 janv. 2015
#rev. 31 Janv Médor.
####
MMLBR="/tmp/mem_libr.txt";RMPL="replaceit --input=$MMLBR" # variables
if [ ${LANG:0:2} = "fr" ];then # param. less
MEV="'q' pour quitter =-=-=-= Mémoire vive libérée";AV="Avant (Mo)";AP="Après (Mo)"
else
MEV="'q' to quit =-=-=-= Freed RAM";AV="Before (MB)";AP="After (MB)"
fi # langues, 1
##[ "`pidof -s aepanel`" ] && echo "aepanel existe" > /tmp/aepanelE && kill [ "`pidof -s aepanel`" ] &>/dev/null # si aepanel
> $MMLBR # Créer fichier à afficher
FreeMem ()
{
echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= .......... =-=-=-=-=-=-=-=-=-=-=-=-=-=" >> $MMLBR
if [ ${LANG:0:2} = "fr" ];then
echo " total utilisé libre partagé tampons" > /tmp/mevlibr
free -m | tail -n 3 >> /tmp/mevlibr
cat /tmp/mevlibr >> $MMLBR;rm -f /tmp/mevlibr
else
free -m >> $MMLBR
fi
echo . >> $MMLBR
}
a="`free -m | awk 'NR=="2" { print $4 }'`"
echo " $AV" >> $MMLBR
FreeMem # L'avant
sync ; echo 3 > /proc/sys/vm/drop_caches;wait # Action
b="`free -m | awk 'NR=="2" { print $4 }'`"
echo " $AP" >> $MMLBR
FreeMem # L'après
d="`free -m | awk 'NR=="4" { print $3 }'`" # État du fichier d'échange
c="`expr $b - $a`" # calcul
if [ ${LANG:0:2} = "fr" ];then
[ "$d" = "0" ] && INCHANG="fich. d'échange non utilisé" || INCHANG="fichier d'échange UTILISÉ"
TITR="MEV libérée : $c Mo; $INCHANG."
# Traduction
$RMPL "-/+ buffers:" " ± tampons :";$RMPL Swap Éch.;$RMPL "Mem:" Mém.
else
[ "$d" = "0" ] && INCHANG="swap file not in use" || INCHANG="swap file IN USE"
TITR="Freed RAM: $c Mb; $INCHANG."
fi # langues, 2
# Afficher
G="g 72x15-250+300";CLR="fg white -bg AntiqueWhite4" # param. urxvt
TRNSP="tr -tint grey79 -sh 99";FNT="fn xft:Monaco:pixelsize=13:autohint=true"
urxvt -$G -T "$TITR" +sb &>/dev/null -e less -L -~ -P "$MEV" $MMLBR
# Terminer # Replacer aepanel s'il y a lieu, et
rm -f $MMLBR # nettoyage
Médor.
Y a pas de quoi se chicaner !!!
Chez toi, la fonction FreeMem ne rejimbe pas sous bash, sans la mention
"function" avant ? Chez moi, si. Vérifie dans ton xerrs_log ?
C'est justement une des différences entre bash et ash. À+
musher0
Chez toi, la fonction FreeMem ne rejimbe pas sous bash, sans la mention
"function" avant ? Chez moi, si. Vérifie dans ton xerrs_log ?
C'est justement une des différences entre bash et ash. À+
musher0
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
Ne me prend pas pour un imbécile :!!
J'ai vérifié avant de relancer X et le script je l'avais lancé une bonne dizaine de fois auparavant lors de mes modif.
je n'avais pas d'erreur mon plus avec ton script original
Après avoir relancer X, J''ai bien évidemment relancé le script avec deux ouvertures du fichier /tmp/xerr.log avant et après l'exécution du script
Médor.
J'ai vérifié avant de relancer X et le script je l'avais lancé une bonne dizaine de fois auparavant lors de mes modif.
je n'avais pas d'erreur mon plus avec ton script original
Après avoir relancer X, J''ai bien évidemment relancé le script avec deux ouvertures du fichier /tmp/xerr.log avant et après l'exécution du script
Médor.