[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Suche: Tab-fähiges Terminal Programm für Dauereinsatz



Am Donnerstag 14 Februar 2008 schrieb Andreas Pakulat:
> On 14.02.08 16:59:42, Markus Schulz wrote:
> > Gibt es noch weitere Terminal Programme die Tab-fähig sind, die ich
> > noch probieren könnte?
> > Ich habe früher konsole und anschließend gnome-terminal benutzt,
> > leider
>
> Mich hat sowohl bei xfce4-terminal als auch gnome-terminal gestoert das
> manche "Tipperei" ewig langsam war - z.B. mit Pfeiltasten vor/zurueck
> gehen.
>
> Was konsole anbelangt: Meine 3 konsolen laufen jetzt 14 Tage und
> brauchen alle so ungefaehr:
> andreas@morpheus:~/KDE-work/4.0/python>cat /proc/13775/status | grep
> ^Vm VmPeak:    42720 kB
> VmSize:    38724 kB
> VmLck:         0 kB
> VmHWM:     20572 kB
> VmRSS:     11912 kB
> VmData:     4072 kB
> VmStk:        84 kB
> VmExe:        40 kB
> VmLib:     25924 kB
> VmPTE:        44 kB

10 offene Tabs. Uptime ist derzeit nicht sehr hoch wg. Kernel-Update auf 
2.6.24.2. Limit auf 50000 Zeilen Rollzurück-Puffer.

Interessant ist bei der pmap-Ausgabe der Wert bei writeable/private. Das 
dürfte bei dem grep auf die status-Datei der VmData sein, schätze ich 
mal. Genau weiß ich ich es nicht.

Insgesamt bleibt noch anzumerken: Wenn ich konsole oder einem anderen 
Terminal sage, es soll sich Ausgaben merken, dann belegts auch den 
Speicher dafür. 

shambala> uptime
 19:30:02 up 1 day,  9:52,  1 user,  load average: 0.41, 0.55, 0.38

martin@shambala> cat /proc/$(pidof konsole)/status | grep "^Vm"
VmPeak:    96308 kB
VmSize:    96308 kB
VmLck:         0 kB
VmHWM:     79784 kB
VmRSS:     79784 kB
VmData:    66776 kB
VmStk:        84 kB
VmExe:        40 kB
VmLib:     25108 kB
VmPTE:       112 kB

martin@shambala> pmap -d $(pidof konsole) | egrep  "(writeable|anon)"
08053000   66600 rw--- 0000000008053000 000:00000   [ anon ]
47270000       8 rw--- 0000000047270000 000:00000   [ anon ]
b6133000       8 rw--- 00000000b6133000 000:00000   [ anon ]
b68f0000      12 rw--- 00000000b68f0000 000:00000   [ anon ]
b68f8000       4 rw--- 00000000b68f8000 000:00000   [ anon ]
b6937000       8 rw--- 00000000b6937000 000:00000   [ anon ]
b694f000      12 rw--- 00000000b694f000 000:00000   [ anon ]
b69e4000       4 rw--- 00000000b69e4000 000:00000   [ anon ]
b6a5e000       4 rw--- 00000000b6a5e000 000:00000   [ anon ]
b6a75000       4 rw--- 00000000b6a75000 000:00000   [ anon ]
b6afa000       8 rw--- 00000000b6afa000 000:00000   [ anon ]
b6b0a000       4 rw--- 00000000b6b0a000 000:00000   [ anon ]
b6b40000       8 rw--- 00000000b6b40000 000:00000   [ anon ]
b6b6a000       4 rw--- 00000000b6b6a000 000:00000   [ anon ]
b6e7a000       4 rw--- 00000000b6e7a000 000:00000   [ anon ]
b6ea6000       4 rw--- 00000000b6ea6000 000:00000   [ anon ]
b7768000      16 rw--- 00000000b7768000 000:00000   [ anon ]
b79ad000       8 rw--- 00000000b79ad000 000:00000   [ anon ]
b7cf8000       4 rw--- 00000000b7cf8000 000:00000   [ anon ]
b7e43000      12 rw--- 00000000b7e43000 000:00000   [ anon ]
b7e78000       4 rw--- 00000000b7e78000 000:00000   [ anon ]
b7f5f000      24 rw--- 00000000b7f5f000 000:00000   [ anon ]
b7fcc000       8 rw--- 00000000b7fcc000 000:00000   [ anon ]
b7fce000       4 r-x-- 00000000b7fce000 000:00000   [ anon ]
mapped: 96308K    writeable/private: 67928K    shared: 500K


Nach dem Öffnen von 100 weiteren Tabs:

martin@shambala> cat /proc/$(pidof konsole)/status | grep "^Vm"
VmPeak:   139452 kB
VmSize:   139452 kB
VmLck:         0 kB
VmHWM:    123312 kB
VmRSS:    123312 kB
VmData:   109920 kB
VmStk:        84 kB
VmExe:        40 kB
VmLib:     25108 kB
VmPTE:       152 kB
martin@shambala> pmap -d $(pidof konsole) | egrep  "(writeable|anon)"
08053000  109744 rw--- 0000000008053000 000:00000   [ anon ]
47270000       8 rw--- 0000000047270000 000:00000   [ anon ]
b6133000       8 rw--- 00000000b6133000 000:00000   [ anon ]
b68f0000      12 rw--- 00000000b68f0000 000:00000   [ anon ]
b68f8000       4 rw--- 00000000b68f8000 000:00000   [ anon ]
b6937000       8 rw--- 00000000b6937000 000:00000   [ anon ]
b694f000      12 rw--- 00000000b694f000 000:00000   [ anon ]
b69e4000       4 rw--- 00000000b69e4000 000:00000   [ anon ]
b6a5e000       4 rw--- 00000000b6a5e000 000:00000   [ anon ]
b6a75000       4 rw--- 00000000b6a75000 000:00000   [ anon ]
b6afa000       8 rw--- 00000000b6afa000 000:00000   [ anon ]
b6b0a000       4 rw--- 00000000b6b0a000 000:00000   [ anon ]
b6b40000       8 rw--- 00000000b6b40000 000:00000   [ anon ]
b6b6a000       4 rw--- 00000000b6b6a000 000:00000   [ anon ]
b6e7a000       4 rw--- 00000000b6e7a000 000:00000   [ anon ]
b6ea6000       4 rw--- 00000000b6ea6000 000:00000   [ anon ]
b7768000      16 rw--- 00000000b7768000 000:00000   [ anon ]
b79ad000       8 rw--- 00000000b79ad000 000:00000   [ anon ]
b7cf8000       4 rw--- 00000000b7cf8000 000:00000   [ anon ]
b7e43000      12 rw--- 00000000b7e43000 000:00000   [ anon ]
b7e78000       4 rw--- 00000000b7e78000 000:00000   [ anon ]
b7f5f000      24 rw--- 00000000b7f5f000 000:00000   [ anon ]
b7fcc000       8 rw--- 00000000b7fcc000 000:00000   [ anon ]
b7fce000       4 r-x-- 00000000b7fce000 000:00000   [ anon ]
mapped: 139452K    writeable/private: 111072K    shared: 500K

Kann jetzt nicht sagen, dass mich das sonderlich beunruhigt.

Bei all dem bleibt anzumerken, dass auch der Wert bei writeable/private 
noch nicht wirklich aussagekräfigt ist. Meines Wissens sind das alles nur 
angeforderte Adressbereiche! Wieviel das Programm dann wirklich davon 
beschreibt ist nochmal ne ganz andere Frage.

Daher ist es nicht ganz trivial, die Werte zum Speicherverbrauch zu 
interpretieren und wirklich den tatsächlichen Speicherverbrauch 
festzustellen.

So sieht das für einen Firefox direkt nach dem Start mit 2-3 
Erweiterungen, ohne dass eine Webseite geladen ist, so aus:

martin@shambala> pmap -d $(pidof /usr/lib/iceweasel/firefox-bin) | 
egrep  "(writeable|anon)"
08ba8000   15980 rw--- 0000000008ba8000 000:00000   [ anon ]
afbf3000      40 rw--- 00000000afbf3000 000:00000   [ anon ]
afbfd000       4 ----- 00000000afbfd000 000:00000   [ anon ]
afbfe000    8192 rwx-- 00000000afbfe000 000:00000   [ anon ]
b03fe000       4 ----- 00000000b03fe000 000:00000   [ anon ]
b03ff000    8192 rwx-- 00000000b03ff000 000:00000   [ anon ]
b0bff000       4 ----- 00000000b0bff000 000:00000   [ anon ]
b0c00000    8192 rwx-- 00000000b0c00000 000:00000   [ anon ]
b1400000     132 rw--- 00000000b1400000 000:00000   [ anon ]
b1421000     892 ----- 00000000b1421000 000:00000   [ anon ]
b158a000       4 ----- 00000000b158a000 000:00000   [ anon ]
b158b000    8192 rwx-- 00000000b158b000 000:00000   [ anon ]
b1d8b000       4 ----- 00000000b1d8b000 000:00000   [ anon ]
b1d8c000    8192 rwx-- 00000000b1d8c000 000:00000   [ anon ]
b258c000       4 ----- 00000000b258c000 000:00000   [ anon ]
b258d000    8192 rwx-- 00000000b258d000 000:00000   [ anon ]
b2e12000       4 ----- 00000000b2e12000 000:00000   [ anon ]
b2e13000    8192 rwx-- 00000000b2e13000 000:00000   [ anon ]
b3613000       4 ----- 00000000b3613000 000:00000   [ anon ]
b3614000    8192 rwx-- 00000000b3614000 000:00000   [ anon ]
b3e14000       4 ----- 00000000b3e14000 000:00000   [ anon ]
b3e15000    8192 rwx-- 00000000b3e15000 000:00000   [ anon ]
b46f5000       4 ----- 00000000b46f5000 000:00000   [ anon ]
b46f6000    8192 rwx-- 00000000b46f6000 000:00000   [ anon ]
b4ef6000       4 ----- 00000000b4ef6000 000:00000   [ anon ]
b4ef7000    8192 rwx-- 00000000b4ef7000 000:00000   [ anon ]
b5757000     164 rw--- 00000000b5757000 000:00000   [ anon ]
b5883000     152 rw--- 00000000b5883000 000:00000   [ anon ]
b590d000       4 ----- 00000000b590d000 000:00000   [ anon ]
b590e000    8192 rwx-- 00000000b590e000 000:00000   [ anon ]
b610e000       4 ----- 00000000b610e000 000:00000   [ anon ]
b610f000    8192 rwx-- 00000000b610f000 000:00000   [ anon ]
b6a28000       8 rw--- 00000000b6a28000 000:00000   [ anon ]
b6a81000       4 rw--- 00000000b6a81000 000:00000   [ anon ]
b6a93000       8 rw--- 00000000b6a93000 000:00000   [ anon ]
b6c93000       4 rw--- 00000000b6c93000 000:00000   [ anon ]
b6ea4000       4 rw--- 00000000b6ea4000 000:00000   [ anon ]
b7118000      12 rw--- 00000000b7118000 000:00000   [ anon ]
b7162000       4 rw--- 00000000b7162000 000:00000   [ anon ]
b7179000       8 rw--- 00000000b7179000 000:00000   [ anon ]
b71e1000       4 rw--- 00000000b71e1000 000:00000   [ anon ]
b720a000       4 rw--- 00000000b720a000 000:00000   [ anon ]
b7223000       4 rw--- 00000000b7223000 000:00000   [ anon ]
b72d2000       4 rw--- 00000000b72d2000 000:00000   [ anon ]
b7420000      12 rw--- 00000000b7420000 000:00000   [ anon ]
b753b000      24 rw--- 00000000b753b000 000:00000   [ anon ]
b755a000       8 rw--- 00000000b755a000 000:00000   [ anon ]
b76ce000       4 rw--- 00000000b76ce000 000:00000   [ anon ]
b7724000       4 rw--- 00000000b7724000 000:00000   [ anon ]
b7839000       4 rw--- 00000000b7839000 000:00000   [ anon ]
b7985000       4 rw--- 00000000b7985000 000:00000   [ anon ]
b7d7d000       4 rw--- 00000000b7d7d000 000:00000   [ anon ]
b7d94000       8 rw--- 00000000b7d94000 000:00000   [ anon ]
b7de6000       8 rw--- 00000000b7de6000 000:00000   [ anon ]
b7e94000       4 rw--- 00000000b7e94000 000:00000   [ anon ]
b7f43000       8 rw--- 00000000b7f43000 000:00000   [ anon ]
b7f45000       4 r-x-- 00000000b7f45000 000:00000   [ anon ]
bfe25000       4 rw--- 00000000bffff000 000:00000   [ anon ]
mapped: 162868K    writeable/private: 124236K    shared: 1268K

120 MB braucht das Teil direkt nach dem Start aber nie im Leben. Das zeigt 
schon ein einfacher Blick auf free ;-). (Hab ich jetzt vergessen, vorher 
zu starten und daher lass ich das jetzt lieber mit dem Vergleichen, wenn 
Bibliotheken noch im Speicher sind).

Konqueror ist was das Anfordern von Adressbereichen betrifft wesentlich 
genügsamer. Ob Konqueror deshalb jedoch weniger Speicher braucht also 
wirklich durch Schreiben physisch belegt?

Ein der besseren Tests ist denke ich, nach frisch gebootetem System mit 
mininalem X11 (vielleicht fvwm) aus einem xterm das gewünschte Programm 
zu starten und mit "free" vorhr und nachher.

Nicht umsonst gibt es für die Messung des Speicherverbrauchs von 
Programmen noch ganz andere Software wie 

shambala> apt-cache show exmap
Package: exmap
Priority: optional
Section: devel
Installed-Size: 460
Maintainer: Samuel Mimram <smimram@debian.org>
Architecture: i386
Version: 0.10-2
Depends: libatk1.0-0 (>= 1.20.0), libc6 (>= 2.6.1-1), libcairo2 (>= 
1.4.0), libcairomm-1.0-1 (>= 1.4.0), libfontconfig1 (>= 2.4.0), libgcc1 
(>= 1:4.2.1), libglib2.0-0 (>= 2.14.0), libglibmm-2.4-1c2a (>= 2.14.0), 
libgtk2.0-0 (>= 2.12.0), libgtkmm-2.4-1c2a (>= 2.12.0), libpango1.0-0 (>= 
1.18.3), libpcre3 (>= 6.0), libsigc++-2.0-0c2a (>= 2.0.2), libstdc++6 (>= 
4.2.1), libx11-6, libxcomposite1 (>= 1:0.3-1), libxcursor1 (>> 1.1.2), 
libxdamage1 (>= 1:1.1), libxext6, libxfixes3 (>= 1:4.0.1), libxi6, 
libxinerama1, libxrandr2 (>= 2:1.2.0), libxrender1
Suggests: exmap-modules-source
Filename: pool/main/e/exmap/exmap_0.10-2_i386.deb
Size: 133616
MD5sum: a58b923787c7bb7cc95840a2e90f25e6
SHA1: c8d7fcf86780b4b2534db44fac92971aea022c81
SHA256: a268899b38968a6dfe87532ec4677dcf5ae71461a070d564d3202a9440d7e50f
Description: determine how much physical memory and swap is used by 
individual processes
 Exmap is a memory analysis tool which allows you to accurately determine 
how
 much physical memory and swap is used by individual processes and shared
 libraries on a running system. In particular, it accounts for the sharing 
of
 memory and swap between different processes.
Tag: implemented-in::c++, role::program, uitoolkit::gtk

die gar ein Kernel-Modul braucht, um funktionieren zu können.

Daher meine Empfehlung: Obacht mit voreiligen Schlüssen zum 
Speicherverbrauch von Programmen.

Ciao,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: