Article View: es.comp.os.linux.programacion
Article #8228Re: Memoria ocupada por un proceso (programa en C)
From: Lepton
Date: Fri, 29 Nov 2002 12:32
Date: Fri, 29 Nov 2002 12:32
42 lines
2432 bytes
2432 bytes
On Fri, 29 Nov 2002, H�ctor Garcia Peris wrote:
# A ver si alguien me puede ayudar, porque estoy buscando por todas
# partes, pero no encuentro respuesta a la siguiente pregunta.
# Estoy haciendo un programa en C que utiliza las funciones malloc,
# realloc y free para manejar punteros. El caso es que cada vez parece que
# va consumiendo m�s memoria el programa (viendolo en un top el valor que
# tiene en la columna SIZE y RSS cada vez es m�s grande). Lo que quiero es
# alguna funci�n en C que me devuelva la cantidad de memoria que est�
# usando ese proceso para ver si consigo encontrar lo que no estoy
# liberando y que me hace que me aumente el consumo de memoria del
# programa. �Alguien me ayuda?
En general no deberia preocuparte si el consumo de memoria sube,
ya que free() no implica que se libere la memoria del sistema operativo,
sino solamente del mecanismo interno de la libreria de C..
Por otro lado, puedes usar sbrk(0) (devuelve un void*) para ver
donde esta tu limite actual. Algo asi como:
int main(..) {
void *inicial, *final;
inicial = sbrk(0);
...
final = sbrk(0);
}
La cantidad de memoria asignata al 'heap' seria (final - inicial).
Mejor que eso es usar 'getrlimit()', que te da mucha mas informacion,
y probablemente mucho mas fiable.
Por ultimo, si no estas seguro de que estes free()'eando todo lo
que malloc()'eas, usa alguna libreria del estilo al 'libefence.a',
que te avisan cuando eso ocurre.
Saludos,
Lepton.
Technical Details
Message-ID:
<Pine.LNX.4.44.0211291329090.228-100000@lorien.local>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!news.tele.dk!small.news.tele.dk!fu-berlin.de!uni-berlin.de!a25de.pppool.DE!not-for-mailReferences:
<as7jm8$ba9$1@peque.uv.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,4b0fddaacb743fdf X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2002-11-29 05:25:38 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!news.tele.dk!small.news.tele.dk!fu-berlin.de!uni-berlin.de!a25de.pppool.DE!not-for-mail From: Lepton <reinob@jazzfree.com> Newsgroups: es.comp.os.linux.programacion Subject: Re: Memoria ocupada por un proceso (programa en C) Date: Fri, 29 Nov 2002 13:32:52 +0100 Lines: 44 Message-ID: <Pine.LNX.4.44.0211291329090.228-100000@lorien.local> References: <as7jm8$ba9$1@peque.uv.es> NNTP-Posting-Host: a25de.pppool.de (213.6.37.222) Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=iso-8859-1 Content-Transfer-Encoding: 8BIT X-Trace: fu-berlin.de 1038576337 25782731 213.6.37.222 (16 [130846]) X-Orig-Path: localhost!reinob In-Reply-To: <as7jm8$ba9$1@peque.uv.es>