Jemand hatte hier den Tipp zu dem Tool above512 (Hobbes) gegeben (besten Dank!). Ich hab dafür mal ein kleines Tool in Rexx geschrieben, dass die Ausgabe etwas übersichtlicher formatiert, und sich auf den Speicher beschränkt (private memory und shared memory, jeweils unter und über 512), und alle Sekunde den Speicher abfragt und das Ergebnis ausgibt, und damit Veränderungen sofort transparent macht.
Das ist ganz schön um mal zu sehen, welche Programme Speicher ziehen, und ob der nach Programmende auch wieder korrekt freigegeben wird, oder auch zum System-Tuning.
Das Script im Verzeichnis von above512 abspeichern, und starten. Beendet wird es mit CONTROL+C.
Ich weiß nicht, ob above512 in jedem Fall immer korrekte Werte zurück gibt, da das Tool 10 Jahre alt ist. Müßte man ggf. überprüfen. Hier geht es erstmal soweit, zumindest sieht man in jeden Fall relative Veränderungen. Was das Teil macht, wenn der Shared Memory absäuft, konnte ich bislang nicht beoabachten (Mangels SM Problem).
Die Ausgabe in einer Datei loggen geht natürlich auch:
memmon.cmd >logfile.txt
- - - schnipp
/* memmon.cmd - memory monitor */
/* a wrapper for above512 to monitor memory usage */
/* use control+c to stop monitoring */
/* pm = private memory */
/* sm = shared memory */
/* left entries display memory below 512 */
/* right entries display memory above 512 */
out = 0
curline = ""
first_string = ""
call rxFuncAdd "SysLoadFuncs", "REXXUTIL", "SysLoadFuncs"
call SysLoadFuncs
SIGNAL ON HALT /* termine program with CONTROL+C */
do forever
'@ABOVE512 2>nul | rxqueue 2>NUL 1>&2'
call SysSleep 1
do while queued() <> 0
curLine = lineIN( "QUEUE:" )
if out = 0 then do
parse var curLine first_string .
if first_string = "current" then out = 1
else out = 0
end
else do
parse var curline val.1 . val.2 . . . val.3 . val.4 .
say "pm:" val.1 "sm:" val.2 " <---512---> pm:" val.3 "sm:" val.4
out = 0
end
end
end
exit
HALT:
exit
- - - schnapp
[ Leser: 353 ] |