[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: Some memory statistics (fwd)
From:       Mario Weilguni <mweilguni () sime ! com>
Date:       1999-02-26 7:23:19
[Download RAW message or body]

Am Fri, 26 Feb 1999 schrieb Sirtaj Singh Kang:
>On Thu, 25 Feb 1999, Timothy Whitfield wrote:
>
>> Why is Taj so much lower?  What compiler/libs are you using Taj?  What
>> platform?
>
>Well, just have a look at the list I provided in my post. Nothing special
>about my machine, except that it has been running RH 4.2 for way too long. 
>(kernel is 2.0.33 I think, I'm not at it right now). All RH 4.2 updates in
>place. egcs 1.1.1 built from source. No special compiler flags when
>building KDE (as I mentioned earlier).
>
>ie, I don't know what I'm doing right.
>

Mine are even lower:
mario:~> ps amx|egrep "( k|PID)"
  PID TTY MAJFLT MINFLT   TRS   DRS  SIZE  SWAP   RSS  SHRD   LIB  DT COMMAND
  279  ?      10     67    52  3316  3368     0  3368  2496     0 218 krootwm
  283  ?      13     34    56  3364  3420     0  3420  2544     0 219 kbgndwm
  286  ?    1102    202   108  3604  3712     0  3712  2752     0 240 konsole -r  
  287  ?    1074    220   108  3708  3816     0  3816  2796     0 255 konsole -r
  285  ?    1140    219   104  3844  3948     0  3948  2880     0 267 kvt -resto
  246  ?    1618    718   224  3956  4180     0  4180  3032     0 287 kwm   
  280  ?    1134    334   244  3980  4224     0  4224  3084     0 285 kpanel  
  276  ?    1501    675   364  4200  4564     0  4564  3348     0 304 kfm

egcs-1.1.1, glibc-2, Kernel 2.2.0pre7, SuSE 6.0, using -fno-rtti

kwm uses quite some memory, for each window ~48 KB, and QApplication uses
around 128KB for each instance. "-Os" helps a bit, but most of the memory does
not come from code but from data. IMO, reducing this for the next version
should be a major goal.

Here are some other points where memory could be saved:
* each application contains english text+localized text (difficult to do)

* each dialog is constructed from code. Not too much for individual
applications, but a lot for all applications.

* kwm seems to alloc memory for each window, it does not release after the
window is closed. However, it seems to reuse this memory. Same applies for X,
maybe a memory leak?

* kpanel uses a lot of data memory (~700KB), maybe here we can save a bit.

* kmail uses tons of memory, and has a lot of memory leaks. It used up to 90MB
on my system a while ago.


Here some tests:
cpp-application, linked vs. X11:
Name:   xt
Pid:    2754
VmSize:     1792 kB
VmData:       72 kB
VmStk:         4 kB
VmExe:         4 kB
VmLib:      1604 kB  

cpp-application, linked vs. X11,Xext and qt
VmSize:     3672 kB
VmData:       84 kB
VmStk:         4 kB
VmExe:         4 kB
VmLib:      3168 kB     

so Qt uses 1.7MB, but only once for all KDE applications. Not too much. It uses
additional ~16KB for each application


cpp-application, linked vs. X11,Xext and qt, QApplication used
Name:   xt
Pid:    3025
VmSize:     3800 kB
VmData:      180 kB
VmStk:        24 kB
VmExe:         4 kB
VmLib:      3168 kB 

Using QApplication uses ~100KB of memory (that seems to differ somewhat,
sometimes it's more). Since a KDE desktop has a lot of small utilities and
programs, this really should be reduced. On my system, I have 15 apps, and so
~1500 of unshareable memory are used just for QApplication.


cpp-application, linked vs. X11,Xext and qt, KApplication used
Name:   xt
Pid:    3231
VmSize:     4408 kB
VmData:      212 kB
VmStk:        24 kB
VmExe:         4 kB
VmLib:      3652 kB        

This makes additional 32KB for each application, and ~500KB for my desktop

So you see, around ~2000KB are just used for KApplication and other stuff which
is present in EVERY KDE application on my desktop (15 kde apps). 2MB is not that
much for me, but it really makes a difference for low-memory systems (32MB).

This should really be worked on.

Mario

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic