On Wed, Jun 28, 2006 at 11:06:52AM +0200, Cecil Westerhof wrote:
> Om te controleren of pmap kan worden gebruikt om het geheugen gebruik
> van een proces te controleren (er waren mensen die dachten dat pmap
> gealloceerd geheugen niet toont) gebruik ik het volgende programma:
<snip>

> Als ik 'pmap -d <PID>' bij de verschillende stappen gebruik, krijg ik
> voor writeable/private de volgende waardes:
>         1	104
>         2	236
>         3	236
>         4	236
>         5	236
>         6	1020
>         7	236

Ik weet niet precies wat pmap aan het meten is, maar "gebruikte"
geheugen is onzttend lastig om te meten.

Programmas die geheugen willen krijgen dat meestal van de "heap". Dit
is een block geheugen die kan groeien of kleiner worden. Een vaak
voorkomend probleem is als je een hoop geheugen vraagt, dan een klein
beetje voor iets anders en dan die groote block vrijgeeft. Ook al is
dat groote stuk "vrij" kan het niet terug gegeven worden aan het
systeem. Je hebt een gat.

In jouw programma, als getc/printf/etc ook geheugen nodig hebben, kan
het zijn dat niet alles wat jij vrij geeft werkelijk vrij komt. Het kan
ook voorkomen dat er geneog geheugen is maar geen gat groot genoeg voor
wat jij nu vraagt.

Sommige systeemen gebruiken andere manier om geheugen te krijgen voor
groote allocaties. Als ze mmap() gebruiken kan het terug gegeven
worden, zelfs al heb je ondertussen ander dingen gedaan. Maar dat
varieert per systeem, dat is waarschijnlijk waar het verschil van
komt...

Met vriendelijk groet,
-- 
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> From each according to his ability. To each according to his ability to litigate.

-- Attached file included as plaintext by Ecartis --
-- File: signature.asc
-- Desc: Digital signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFEok2lIB7bNG8LQkwRAvLwAJ438RGAaIGSxxIswHo0WjSe1zyN+gCbBcT/
fH8LsGscoMIE/uEjrQEyFNE=
=12iC
-----END PGP SIGNATURE-----



