Ahhh. The current build aligns on a 4 byte boundary. So, what you're saying
is, adding one boolean could actually increase in-memory class size with 4
bytes ? Wow ...

-- Henkk ;-)

BTW, a naked System.Object instance seems to take 32 bytes. A user defined
class with one Int32, takes 36 bytes. Adding 1 bool to that will take 40
bytes.

----- Original Message -----
From: "Valery Pryamikov" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, April 29, 2002 2:50 PM
Subject: Re: [DOTNET] lock - how expensive is it to call?


> Not necessarily ;-).
> Memory allocators usually align memory block to the integer boundary
> (and even to 64 bites boundary), so adding one byte could be not
> essential for the memory consumption (depending on the object layout and
> size).
>
> -Valery.
>
> -----Original Message-----
> From: Henk de Koning [mailto:[EMAIL PROTECTED]]
> Sent: Monday, April 29, 2002 2:47 PM
> To: [EMAIL PROTECTED]
> Subject: Re: [DOTNET] lock - how expensive is it to call?
>
> Whereas your solution would increase object size for each and every
> instance
> ...
>
> Now I'm pushing it, I now ;-);-)
>
> -- Henkk
>
> ----- Original Message -----
> From: "Valery Pryamikov" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Monday, April 29, 2002 2:34 PM
> Subject: Re: [DOTNET] lock - how expensive is it to call?
>
>
> > You right here:-).
> >
> > -----Original Message-----
> > From: Henk de Koning [mailto:[EMAIL PROTECTED]]
> > Sent: Monday, April 29, 2002 2:37 PM
> > To: [EMAIL PROTECTED]
> > Subject: Re: [DOTNET] lock - how expensive is it to call?
> >
> > Would be expensive for exactly one call (out of 300.000).
> >
> > -- Henkk ;-)
> >
> > ----- Original Message -----
> > From: "Valery Pryamikov" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Sent: Monday, April 29, 2002 2:29 PM
> > Subject: Re: [DOTNET] lock - how expensive is it to call?
> >
> >
> > > Your latest code should work, of course, but using second lock would
> > be
> > > quite an expensive addition... And you only need a memory write
> > barrier
> > > between <init stuff> and bNeedInit = false. Using two different
> > > fNeedInit+fNeedInitInt fields is more efficient solution for lazy
> init
> > > problem (you already have mem.barrier during lock release).
> > >
> > > Cheers,
> > > -Valery.
>
> You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
> subscribe to other DevelopMentor lists at http://discuss.develop.com.
>

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to