Re: [GENERAL] Concurrencia

From: "Mario Gonzalez" <gonzalemario(at)gmail(dot)com>
To: "Jaime Casanova" <systemguards(at)gmail(dot)com>, editores(at)editores(dot)com(dot)co, postgresql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [GENERAL] Concurrencia
Date: 2006-03-16 17:19:22
Message-ID: 2065a6cf0603160919j450bfdd8g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda pgsql-general

On 16/03/06, Alvaro Herrera <alvherre(at)commandprompt(dot)com> wrote:
> Mario Gonzalez escribió:
>
> > Mhh, si te refieres a algun error de programacion en el manejo de
> > memoria (memory leak) bueno, puede suceder. Como un ejemplo muy simple
> > y adrede mira el caso de esta funcion
> >
> > void
> > example()
> > {
> > char *b;
> > b = (char *)malloc(sizeof(char *));
> > }
>
> Observa que Postgres rara vez hace esto. Generalmente se usa palloc()
> en lugar de malloc(). La diferencia es que palloc() registra cada
> bloque emplazado ("allocated") como perteneciente a un "contexto". Con
> cierta periodicidad el contexto puede "resetearse", en cuyo caso todos
> los bloques emplazados se liberan automaticamente. Por ejemplo tu
> funcion podria hacer algo asi:
>
> void example() {
> MemoryContext context,
> oldcontext;
> int i;
>
> context = AllocSetContextCreate( ... algunos parametros ...);
> oldcontext = MemoryContextSwitchTo(context);
>
> for (i = 0; i < 1000; i++) {
> char *b;
> b = palloc(sizeof(char *));
> }
>
> MemoryContextSwitchTo(oldcontext);
> AllocSetDelete(context);
> }

Humm, interesante eh? Pero por regla general por que no se usa
palloc() en todos los codigos? Quiza tendra un costo el crear un
MemoryContext.

>
> por mucho que tu llames a esta funcion un millon de veces, nunca va a
> usar mas de de (1000 * sizeof(char*)), aunque nunca hagas pfree().
>
> Pero no entiendo que tiene que ver esto con la pregunta original :-)
>
De editores(at)editores(dot)com(dot)co preguntaron por un desbordamiento de
memoria o manejo de memoria si mal no recuerdo. Por eso mande el mail
:)

>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2006-03-16 17:36:27 Re: [GENERAL] Concurrencia
Previous Message Alvaro Herrera 2006-03-16 16:54:39 Re: [GENERAL] Concurrencia

Browse pgsql-general by date

  From Date Subject
Next Message Alvaro Herrera 2006-03-16 17:36:27 Re: [GENERAL] Concurrencia
Previous Message Kai Hessing 2006-03-16 17:11:33 Constraint Question