|
| Programmer og RAM Fra : RangerDude |
Dato : 17-09-02 00:33 |
|
Hej Alle,
Jeg undrede mig lige over en ting.
Når jeg f.eks. kører mozilla opdater jeg i en top at den kører 5 kopier
af sig selv - de æder hver ca. 30 ram - 150mb ram for en browser synes
jeg er lige lovligt meget.
Det samme sker når jeg kører unreal turnament 2003 - så åbner den 4
gange og hver bruger 128mb ram. Men kun en af den bruger al cpu'en,
resten får 0 cpu. Jeg har opdaget er der er mange programmer der gør sådan.
Hvordan kan det være?
Kan man gøre noget ved det? Vil helst ikke spilde alt for meget ram.
Jeg kører mandrake 9.0rc1.
| |
Lars Henriksen (17-09-2002)
| Kommentar Fra : Lars Henriksen |
Dato : 17-09-02 06:59 |
|
RangerDude wrote:
> Når jeg f.eks. kører mozilla opdater jeg i en top at den kører 5 kopier
> af sig selv - de æder hver ca. 30 ram - 150mb ram for en browser synes
> jeg er lige lovligt meget.
Næ
> Hvordan kan det være?
Det er fordi programmet (her mozilla) forker til flere forskellige
processer. Den mænge hukommelse der står de bruger er langt hen af vejen
shared memory, og derfor optræder den sammen delmænge flere gange. Der
vil dog altid være lidt. Du kan med andre ord altså ikke lægge RSS
værdierne sammen uden at modregne SHARE mængden per process.
PID PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
2385 9 0 29424 27M 14700 S 0.0 5.5 0:04 mozilla-bin
2387 8 0 29424 27M 14700 S 0.0 5.5 0:00 mozilla-bin
2388 9 0 29424 27M 14700 S 0.0 5.5 0:00 mozilla-bin
2389 9 0 29424 27M 14700 S 0.0 5.5 0:00 mozilla-bin
2391 9 0 29424 27M 14700 S 0.0 5.5 0:00 mozilla-bin
Her ville der efter min bedste overbevisning være brugt:
5x(27M-14,7M)+14,7M = 76MB i det hele. Correct me, if wrong.
v.h
Lars
| |
Adam Sjøgren (17-09-2002)
| Kommentar Fra : Adam Sjøgren |
Dato : 17-09-02 08:55 |
|
On Tue, 17 Sep 2002 07:58:38 +0200, Lars Henriksen wrote:
>> Når jeg f.eks. kører mozilla opdater jeg i en top at den kører 5
>> kopier af sig selv - de æder hver ca. 30 ram - 150mb ram for en
>> browser synes jeg er lige lovligt meget.
> Næ
>> Hvordan kan det være?
> Det er fordi programmet (her mozilla) forker til flere forskellige
> processer.
Jeg synes jeg havde hørt at det er en bivirkning af Linux'
thread-implementation at det ser sådan ud i top og ps?
Mvh.
--
"Så har den første snøen falt Adam Sjøgren
men det er ikkje derfor det er kaldt" asjo@koldfront.dk
| |
Lars Henriksen (17-09-2002)
| Kommentar Fra : Lars Henriksen |
Dato : 17-09-02 12:29 |
|
Adam Sjøgren wrote:
> Jeg synes jeg havde hørt at det er en bivirkning af Linux'
> thread-implementation at det ser sådan ud i top og ps?
Ja. pthread's giver samme "signatur". Og ved nærmere eftertanke er det
nok nærmere dette en fork(), der er brugt i mozilla. Sorry
Lars
| |
Michal Wodzinski (17-09-2002)
| Kommentar Fra : Michal Wodzinski |
Dato : 17-09-02 08:02 |
|
| |
RangerDude (17-09-2002)
| Kommentar Fra : RangerDude |
Dato : 17-09-02 21:41 |
|
> Hvilken kerne kører du med? `uname -sr`
Linux 2.4.19-7mdk
| |
Kent Friis (17-09-2002)
| Kommentar Fra : Kent Friis |
Dato : 17-09-02 20:05 |
|
Den Mon, 16 Sep 2002 23:33:18 +0000 skrev RangerDude:
>Hej Alle,
>
>Jeg undrede mig lige over en ting.
>Når jeg f.eks. kører mozilla opdater jeg i en top at den kører 5 kopier
>af sig selv - de æder hver ca. 30 ram - 150mb ram for en browser synes
>jeg er lige lovligt meget.
>Det samme sker når jeg kører unreal turnament 2003 - så åbner den 4
>gange og hver bruger 128mb ram. Men kun en af den bruger al cpu'en,
>resten får 0 cpu. Jeg har opdaget er der er mange programmer der gør sådan.
>
>Hvordan kan det være?
>Kan man gøre noget ved det? Vil helst ikke spilde alt for meget ram.
Det er "threads", en teknik til at få et program til at lave to ting
samtidig (altså ligesom processer, men det samme program), og threads
bruger samme hukommelsesområde.
Mozilla bruger altså 30MB RAM, og UT2003 bruger 128MB RAM.
Mvh
Kent
--
"Intelligence is the ability to avoid doing work, yet get the work done"
- Linus Torvalds
| |
RangerDude (17-09-2002)
| Kommentar Fra : RangerDude |
Dato : 17-09-02 23:51 |
|
> Det er "threads", en teknik til at få et program til at lave to ting
> samtidig (altså ligesom processer, men det samme program), og threads
> bruger samme hukommelsesområde.
>
> Mozilla bruger altså 30MB RAM, og UT2003 bruger 128MB RAM.
Tak for svarene. Hvis programmerne kun bruger RAM'en én gang er der jo ikke
noget problem og så er alt godt.
| |
Kent Friis (18-09-2002)
| Kommentar Fra : Kent Friis |
Dato : 18-09-02 21:32 |
|
Den Wed, 18 Sep 2002 00:50:36 +0200 skrev RangerDude:
>> Det er "threads", en teknik til at få et program til at lave to ting
>> samtidig (altså ligesom processer, men det samme program), og threads
>> bruger samme hukommelsesområde.
>>
>> Mozilla bruger altså 30MB RAM, og UT2003 bruger 128MB RAM.
>
>Tak for svarene. Hvis programmerne kun bruger RAM'en én gang er der jo ikke
>noget problem og så er alt godt.
Mozilla gør. Jeg er ikke helt sikker på UT2003, men hvis tallene er
ens, er der en ret stor sandsynlighed for at det også gælder den.
Mvh
Kent
--
Motion: andet ord for "ondt i fødderne".
| |
|
|