Vive la mémoire... LIBRE !!!
Loin de moi la pensée !!!
Simplement, je trouve curieux que ça marche sans probl. chez toi -- et tant mieux,
ça t'évite des révisions. Mais, sur mon slacko-6.0b, si j'essaie de faire tourner une
fonction style ash en bash ou inversement, à partir du testeur de geany, geany me
le fait savoir en termes clairs !!!
Et ça s'inscrit dans Xerrs_log. C'est pour ça que j'en parlais.
Bye!
Christian
Simplement, je trouve curieux que ça marche sans probl. chez toi -- et tant mieux,
ça t'évite des révisions. Mais, sur mon slacko-6.0b, si j'essaie de faire tourner une
fonction style ash en bash ou inversement, à partir du testeur de geany, geany me
le fait savoir en termes clairs !!!
Et ça s'inscrit dans Xerrs_log. C'est pour ça que j'en parlais.
Bye!
Christian
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
Bonjour,
Notre système de santé tombe vraiment en décrépitude ! Et au final je ne vois plus les titres des fenêtres : pas facile tous les jours
Concrêtement quelle est la différence entre
et
Musher0, dans ta version Mo est-ce que en ligne 27 tu n'aurais pas oublié le "-m" pour avoir
C'est pas trop mon truc le code, je m'interroge simplement.
Bonne journée,
Philippe
J'ai été grillé sur le poteau pendant la nuit !jplt wrote:Bonjour augras,
tu pourrais poster ta version avec tes modifications ?
Et oui, le problème étant que j'ai effectivement besoin de lunettes depuis environ 8 mois et que je n'ai pu obtenir un rendez-vous chez le spécialiste que fin juin, dans 5 mois.... 13 mois au total.musher0 wrote: Rappel amical : les lunettes, c'est sur le nez que ça se porte !
Notre système de santé tombe vraiment en décrépitude ! Et au final je ne vois plus les titres des fenêtres : pas facile tous les jours
Je n'ai pas compris l'utilité de replaceit : supprimé du code tout fonctionne, apparemment, mais comme j'ai besoin de lunettes je me méfie maintenant, tout à fait normalement. J'avais compris que c'était pour les traductions mais tout est prévu dans le code.musher0 wrote: Je joins une archive *.pet de replaceit pour la
commodité de la chose.
Concrêtement quelle est la différence entre
Code: Select all
sync ; echo 3 > /proc/sys/vm/drop_caches;wait # Action
Code: Select all
sync ; echo 3 | tee /proc/sys/vm/drop_caches &>/dev/null;wait # Action
Code: Select all
free >> $MMLBR
Code: Select all
free -m>> $MMLBR
Bonne journée,
Philippe
Bonjour Philippe,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
voir mon lien ci-dessus, la commande tee n'est pas nécessaire et provoque des erreurs bien quelles soient honteusement flanquées sous le paillasson par : "&>/dev/null"
Cordialement,
Médor.
Pour replaceit j'ai trouvé, je crois :
Il n'intervient qu'à ce niveau et sans lui j'ai buffers au lieu de tampons et swap au lieu de Mem !
Sinon pour le reste il n'intervient pas ?
J'ai bon ?
Philippe
Code: Select all
# Traduction
$RMPL "-/+ buffers:" " ± tampons :";$RMPL Swap Éch.;$RMPL "Mem:" Mém.
Sinon pour le reste il n'intervient pas ?
J'ai bon ?
Philippe
Je vais regarder de plus près car je crois que je suis mal réveilléaugras wrote:Pour replaceit j'ai trouvé, je crois :Il n'intervient qu'à ce niveau et sans lui j'ai buffers au lieu de tampons et swap au lieu de Mem !Code: Select all
# Traduction $RMPL "-/+ buffers:" " ± tampons :";$RMPL Swap Éch.;$RMPL "Mem:" Mém.
Sinon pour le reste il n'intervient pas ?
J'ai bon ?
Philippe
"tee" est à supprimer, si tu la laisse supprime "&>/dev/null" et regarde /tmp/xerrs.log
Cordialement,
Médor.
Last edited by Médor on Sun 01 Feb 2015, 10:26, edited 2 times in total.
Je suis étonné : après avoir lancé le script quand je compare l'indication de mémoire utilisée avec celle donnée par lxtask, ce dernier indique environ 300 Mo de moins !
EDIT : je crois que je me suis mal exprimé et que l'on ne comprend pas ce que je voulais dire ! Le script m'indique après nettoyage par exemple 800 Mo utilisés alors que lxtask m'indique 500 Mo. On est pas à quelques Mo mais là il est anormal que 2 outils aient une telle différence dans le calcul de la mémoire vive utilisée.
EDIT : je crois que je me suis mal exprimé et que l'on ne comprend pas ce que je voulais dire ! Le script m'indique après nettoyage par exemple 800 Mo utilisés alors que lxtask m'indique 500 Mo. On est pas à quelques Mo mais là il est anormal que 2 outils aient une telle différence dans le calcul de la mémoire vive utilisée.
Salut, augras.augras wrote:Merci Médor,Médor wrote:la commande tee n'est pas nécessaire et provoque des erreurs bien quelles soient honteusement flanquées sous le paillasson par : "&>/dev/null"
Je viens de lancer le script de Musher0, avec tee, et aucune erreur dans la console !
Je suis sous tahrpup6.01.
Philippe
Deux-trois réponses ici, si tu permets.
Au sujet de ta remarque sur l'apparente incohérence entre free simple et free -m à
la ligne 27, j'ai tout uniformisé depuis, ici :
http://murga-linux.com/puppy/viewtopic. ... ost#825247
À strictement parler, j'aurais pu laisser free sans param. à la ligne de la variable
"d", puisque je vais pêcher la dimension du fichier d'échange seulement pour savoir
si 0 ou pas. Et 0 = 0...
Mais... à vrai dire, il faudrait que ce soit free -b et non free -m à cet endroit,
puisqu'on veut observer s'il y a la moindre chose dans le fichier d'échange. Car
0b != 0k != 0M != 0G, n'est-ce pas ? Par ex., on aurait 999 999,999 Mo dans un
fichier, et il ne serait pas faux de dire que ce fichier fait encore 0G... L'ordre de
grandeur détermine la sensibilité.
~~~~
Au sujet de l'erreur avec tee, je l'ai envoyée au pays des bytes oubliées par la
redirection &>/dev/null. Si pas de tee, pas besoin de redirection.
En réponse à Médor, la ligne avec tee, c'est la ligne originale de Joe, et à priori, je
ne touche pas aux lignes originales quand je remanie (question de respect, pas
d'efficacité informatique). Mais si tu me dis que l'emploi de tee n'est pas justifié,
c'est autre chose.
En passant, pas d'adjectif "honteux", s.t.p. On fait de l'informatique ici, pas de la
psycho populaire.
~~~~
Pour revenir à la question d'augras sur l'emploi de la dépendance replaceit. oui,
c'est ça, replaceit ne remplace que 2 mots.
Il faut aussi songer à l'alignement corect des colonnes et à la ponctuation correcte
en français. J'ai fait exprès de traduire "-/+ buffers:" par " ± tampons :" C'est
l'usage du signe "±" précédé d'un espace qui permet de respecter l'alignement et
la grammaire. Ouf... Merci aux scientifiques pour ce signe !
On pourrait se passer de replaceit en traitant chaque ligne de free séparément dans
awk ou autre à mesure qu'elle défile. Alors il faut fournir la traduction dans le script
puis utiliser du raboutement de "chaînes" avancé, car les chiffres changent dans les
lignes à chaque fois que le script tourne. C'est possible, mais j'ai un p'tit côté
paresseux : pourquoi le faire toi-même quand replaceit peut le faire à ta place ?!
~~~~
À+
musher0
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
Bonsoir musher0,
J'ai supprimé cette commande 'tee' inutile, de plus elle génère un message d'erreur qui se retrouve donc dans /tmp/xerrs.log à moins de le cacher sous le paillasson avec "&>/dev/null" en fin de ligne
Lire l'extrait de la page de man jointe sur mon fil
La commande 'tee' n'est pas mentionnée
Cordialement,
Médor.
Tu ne sembles pas avoir lu mon dernier message sur mon fil de freemem_memory & freemem_mozilla GUImusher0 wrote:En réponse à Médor, la ligne avec tee, c'est la ligne originale de Joe, et à priori, je
ne touche pas aux lignes originales quand je remanie (question de respect, pas
d'efficacité informatique). Mais si tu me dis que l'emploi de tee n'est pas justifié,
c'est autre chose.
J'ai supprimé cette commande 'tee' inutile, de plus elle génère un message d'erreur qui se retrouve donc dans /tmp/xerrs.log à moins de le cacher sous le paillasson avec "&>/dev/null" en fin de ligne
Lire l'extrait de la page de man jointe sur mon fil
La commande 'tee' n'est pas mentionnée
Cordialement,
Médor.
Bonsoir Philippe,
http://a.michelizza.free.fr/pmwiki.php? ... dminMemory :
Tu peux noter que dans LxTask il y a dans Affichage une case en principe cochée : Afficher la mémoire utilisée par le cache comme étant libre.
Htop ne donne les mêmes valeurs que LxTask.
Cordialement,
Médor.
Voici l'explication :augras wrote:Je suis étonné : après avoir lancé le script quand je compare l'indication de mémoire utilisée avec celle donnée par lxtask, ce dernier indique environ 300 Mo de moins !
EDIT : je crois que je me suis mal exprimé et que l'on ne comprend pas ce que je voulais dire ! Le script m'indique après nettoyage par exemple 800 Mo utilisés alors que lxtask m'indique 500 Mo. On est pas à quelques Mo mais là il est anormal que 2 outils aient une telle différence dans le calcul de la mémoire vive utilisée.
http://a.michelizza.free.fr/pmwiki.php? ... dminMemory :
Ici avec free je n'ai généralement, comme sur ma capture précédente, que 7 Mo de libre sur 238 Mo de ramLa commande free wrote: ...
Dans l'exemple ci-dessus, le système dispose en tout de 4054 Mo de mémoire.
Sur ce total, 3893 Mo sont utilisés et 161 Mo sont inutilisés.
A première vue, toute la mémoire est consommée et la machine est donc dans un état critique.
Pourtant, çe n'est pas du tout le cas.
Attention à ne pas confondre mémoire inutilisée et mémoire disponible !
Le système consomme un maximum de mémoire pour optimiser au mieux ses performances via l'utilisation de caches, et il n'y a donc que très peu de mémoire inutilisée (colonne free).
Mais la mémoire utilisée par les caches (colonnes buffers et cached) peut être libérée à tout moment.
La deuxième ligne indique la quantité de mémoire réellement consommée par les applications (colonne used) et la mémoire réellement disponible (colonne free) :
-/+ buffers/cache: ........ 390 ....... 3663
En cessant d'utiliser les caches, le système ne consommerait donc plus que 390 Mo de mémoire alors que 3663 Mo seraient disponibles.
Finalement, ce serveur a encore beaucoup de mémoire disponible en réserve !
...
Tu peux noter que dans LxTask il y a dans Affichage une case en principe cochée : Afficher la mémoire utilisée par le cache comme étant libre.
Htop ne donne les mêmes valeurs que LxTask.
Cordialement,
Médor.
@augras
On peut traduire des champs avec awk, mais c'est beaucoup plus lent qu'avec
replaceit.
En modifiant la fonction FreeMem comme suit et en enlevant la ligne des chaînes
"replaceit" plus bas dans le script, on peut s'en passer, on y arrive, mais avec
lenteur ainsi qu'avec un problème de mise en forme à la ligne 3 (voir capture) :
On notera les deux façons de mettre la ligne awk, etc., en forme avec echo. J'ai
mis une 2e forme dans la partie anglaise.
Le problème, c'est qu'on ne sait pas combien d'espaces mettre à awk comme
séparateur de champs (le -F " "), parce que les résultats de free vont varier et
donc le remplissage entre les chiffres.
Je conserve la version avec replaceit, qui est beaucoup plus rapide et qui ne
bouscule pas la mise en forme.
Intéressante découverte par contre, cette possibilité de traduire des éléments de
texte avec awk exactement là où on veut dans un tableau. (Déduite à partir de :
http://www.theunixcode.com/2013/12/usin ... o-the-last,
le post de "Koullis" au milieu de la page.) Ça peut toujours servir.
À+
musher0
On peut traduire des champs avec awk, mais c'est beaucoup plus lent qu'avec
replaceit.
En modifiant la fonction FreeMem comme suit et en enlevant la ligne des chaînes
"replaceit" plus bas dans le script, on peut s'en passer, on y arrive, mais avec
lenteur ainsi qu'avec un problème de mise en forme à la ligne 3 (voir capture) :
Code: Select all
FreeMem () {
echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- .... -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" >> $MMLBR
if [ ${LANG:0:2} = "fr" ];then
echo "(En Mo) total utilisé libre partagé tampons" > /tmp/mevlibr
echo "`free -m | awk -F" " 'NR=="2" { print "Mém.";for (i=2; i<=NF; i++) print $i" " }'| tr '\n' ' '`" >> /tmp/mevlibr
echo "`free -m | awk -F" " 'NR=="3" { print "±tampons";for (i=3; i<=NF; i++) print $i" " }'| tr '\n' ' '`" >> /tmp/mevlibr
echo "`free -m | awk -F" " 'NR=="4" { print "Éch. ";for (i=2; i<=NF; i++) print $i" " }'| tr '\n' ' '`" >> /tmp/mevlibr
else
free -m | awk -F" " 'NR=="1" { print "(In Mb)";for (i=2; i<=NF; i++) print $i" " }'| tr "\n" " " > /tmp/mevlibr
echo >> /tmp/mevlibr
free -m | tail -n 3 >> /tmp/mevlibr
fi
cat /tmp/mevlibr >> $MMLBR;rm -f /tmp/mevlibr
echo . >> $MMLBR
}
mis une 2e forme dans la partie anglaise.
Le problème, c'est qu'on ne sait pas combien d'espaces mettre à awk comme
séparateur de champs (le -F " "), parce que les résultats de free vont varier et
donc le remplissage entre les chiffres.
Je conserve la version avec replaceit, qui est beaucoup plus rapide et qui ne
bouscule pas la mise en forme.
Intéressante découverte par contre, cette possibilité de traduire des éléments de
texte avec awk exactement là où on veut dans un tableau. (Déduite à partir de :
http://www.theunixcode.com/2013/12/usin ... o-the-last,
le post de "Koullis" au milieu de la page.) Ça peut toujours servir.
À+
musher0
- Attachments
-
- Traduit-avec-awk_2015-02-01_18.10.59.jpg
- Mise en forme déjantée à la ligne 3...
- (46.15 KiB) Downloaded 336 times
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
Salut, les gars !
Sous cette forme on gagne une seconde... de 4 à 3. (Voir archive ci-jointe.)
Renommez l'ancien fichier cleanup_memory cleanup_memory.vieux, faites un lien
symbolique de cleanup_memory3 à cleanup_memory, et ça va marcher comme
avant. Rien d'autre à changer.
Aussi une présentation de deux lignes plus compacte, mais pas la peine de mettre
une saisie d'écran juste pour ça.
Soyez prévenus que j'arrête là, avant de devenir tout à fait gaga !!!...
(Hé, les ricaneurs au fond de la salle : silence ! Je sais, c'est déjà commencé !!!)
À+
musher0
Sous cette forme on gagne une seconde... de 4 à 3. (Voir archive ci-jointe.)
Renommez l'ancien fichier cleanup_memory cleanup_memory.vieux, faites un lien
symbolique de cleanup_memory3 à cleanup_memory, et ça va marcher comme
avant. Rien d'autre à changer.
Aussi une présentation de deux lignes plus compacte, mais pas la peine de mettre
une saisie d'écran juste pour ça.
Soyez prévenus que j'arrête là, avant de devenir tout à fait gaga !!!...
(Hé, les ricaneurs au fond de la salle : silence ! Je sais, c'est déjà commencé !!!)
À+
musher0
- Attachments
-
- cleanup_memory3.zip
- Dans cette version, on travaille davantage sur les chaînes directement en mémoire.
On économise ainsi le temps de plusieurs enregistrements transitoires sur disque.
Bravo à celui ou à celle qui a inventé "echo -e $VARIABLE" ! - (1.41 KiB) Downloaded 391 times
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
Bonjour,
Mon insistance sur replaceit signifiait juste que je ne comprenais pas à quoi il servait : j'ai trouvé, vous avez confirmé et j'ai installé le paquet mis à disposition par musher0.
Pour les explications sur les différences entre le script et lxtask c'est compris aussi.
Et ce soir je vais prendre la dernière version... et reviendrai avec mes questions !
Bonne journée,
Philippe
Mon insistance sur replaceit signifiait juste que je ne comprenais pas à quoi il servait : j'ai trouvé, vous avez confirmé et j'ai installé le paquet mis à disposition par musher0.
Pour les explications sur les différences entre le script et lxtask c'est compris aussi.
Et ce soir je vais prendre la dernière version... et reviendrai avec mes questions !
Bonne journée,
Philippe
Salut, Philippe.
replaceit est une manière de "stream editor (sed)"*, en beaucoup moins
compliqué**. Je le trouve très commode, justement pour les cas où autres utilitaires
sont trop lents ou nécessitent trop de contorsions dans le script. il est tellement
petit qu'il devrait faire partie de tout Puppy, selon moi.
À+
musher0
* S.t.p. voir : https://fr.wikipedia.org/wiki/Stream_Editor
**
replaceit est une manière de "stream editor (sed)"*, en beaucoup moins
compliqué**. Je le trouve très commode, justement pour les cas où autres utilitaires
sont trop lents ou nécessitent trop de contorsions dans le script. il est tellement
petit qu'il devrait faire partie de tout Puppy, selon moi.
À+
musher0
* S.t.p. voir : https://fr.wikipedia.org/wiki/Stream_Editor
**
... et c'est tout !replaceit - v1.0.0 - PLD Software (C) - http://pldaniels.com/replaceit 2001
Usage: replaceit --input=<filename> [--wholeline] "<replace>" "<with>" [["[+-]<string to be present>" | "<-string to be non-present>"] ...]
--input : Name of file to apply the replacements to
--wholeline : Replace the entire line with <with>, rather than partial replacement
<replace> : String we're searching for
<with> : What we wish to replace <replace> with
<[+-]string> : A string which should be also detected on the line
-<string> : A string which we DO NOT want detected in the line
<}string> : This string must appear AFTER the section to replace
<{string> : This string must appear BEFORE the section to replace
example: ./replaceit --input=myfile.c "_MY_DEFINE" "_YOUR_DEFINE" "-#define" "};"
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
Bonjour, le monde !
Un exercice amusant basé sur /proc/meminfo :
Morale de l'histoire : awk gobe les fichiers par derrière et les chaînes par devant !!!
Comprenne qui pourra !!!
Bye !
musher0
~~~~~~~~
Et pendant qu'on y est, pourquoi ne pas essayer :
Un exercice amusant basé sur /proc/meminfo :
Code: Select all
# En "one-liner"
clear;echo;A="`grep wap /proc/meminfo | tr -s ' ' | tr '\n' ' '`";echo -e "$A" | awk '{ print " "$4" "$7" "$1"\n "$5" "$6" - "$8" "$9" = "$2" "$3 }';echo
# En code lisible !
clear
echo;A="`grep wap /proc/meminfo | tr -s ' ' | tr '\n' ' '`" # Et ch'te mous !
echo -e "$A" | awk '{ print " "$4" "$7" "$1"\n "$5" "$6" - "$8" "$9" = "$2" "$3 }' # Et ch'te pétris !
echo
Comprenne qui pourra !!!
Bye !
musher0
~~~~~~~~
Et pendant qu'on y est, pourquoi ne pas essayer :
Code: Select all
echo;cat /proc/meminfo | head -n 4 | tr -s ' ' | tr '\n' ' ';echo;echo
- Attachments
-
- Les-chaînes-par-devant.jpg
- La malléabilité de l'information nécessite du travail ! :)
- (14.91 KiB) Downloaded 275 times
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
Rebonjour.
On trouvera ici une application, à un menu pekwm, de la formule de découverte de mmoire vive disponible avec /proc/meminfo :
http://murga-linux.com/puppy/viewtopic. ... ost#826067
Je joins aussi ci-dessous une dernière mouture (sont-elles jamais définitives ?!) du script
cleanup_memory que vous m'avez aidé à récrire.
Au plaisir.
musher0
On trouvera ici une application, à un menu pekwm, de la formule de découverte de mmoire vive disponible avec /proc/meminfo :
http://murga-linux.com/puppy/viewtopic. ... ost#826067
Je joins aussi ci-dessous une dernière mouture (sont-elles jamais définitives ?!) du script
cleanup_memory que vous m'avez aidé à récrire.
Au plaisir.
musher0
- Attachments
-
- cleanup_memory3a.zip
- Remanié en utilisant davantage le potentiel des chaînes et en faisant appel Ã
/proc/meminfo dans des calculs. Ainsi, la vitesse d'exécution du script diminue encore,
de 3 s à ± 2,7s (rubrique "real" dans <time -p cleanup_memory3>). - (1.38 KiB) Downloaded 398 times
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
Je viens de lancer cleanup_memory3a :
La fenetre se ferme instantanement.
J'ai testé sous tahrpup 6.0.
Code: Select all
./cleanup_memory3: line 31: can't create /root/my-applications/Systeme/mem_libr.txt: nonexistent directory
awk: fatal: cannot open file `/root/my-applications/Systeme/mem_libr.txt' for reading (No such file or directory)
./cleanup_memory3: line 40: can't create /root/my-applications/Systeme/mem_libr.txt: nonexistent directory
awk: fatal: cannot open file `/root/my-applications/Systeme/mem_libr.txt' for reading (No such file or directory)
awk: fatal: cannot open file `/root/my-applications/Systeme/mem_libr.txt' for reading (No such file or directory)
Error: Cannot open /root/my-applications/Systeme/mem_libr.txt (No such file or directory)Error: Cannot open /root/my-applications/Systeme/mem_libr.txt (No such file or directory)Error: Cannot open /root/my-applications/Systeme/mem_libr.txt (No such file or directory)
J'ai testé sous tahrpup 6.0.