Re: Double-Checked Locking pattern issue
- From: "Ben Voigt [C++ MVP]" <rbv@xxxxxxxxxxxxx>
- Date: Mon, 31 Dec 2007 13:10:47 -0600
"George" <George@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:AFF9AD5D-1564-4099-AA56-C36A23EA124B@xxxxxxxxxxxxxxxx
Thanks Igor,
to memory is expensive, it is conceivable the CPU may reorder the write
to the pointer as early as possible.
The only reason I could think of is writing earlier to memory could save
the
register and we could save the register for later use.
What are your points about why writing early will improve performance?
Could
you show more description or some pseudo code please?
You aren't considering pipelining, cache effects, speculative branching, or
any of the other things that new CPUs use to retire multiple instructions
per clock.
In short, while some CPU can retire four instructions per clock, there
aren't four copies of every unit, and certainly it can't transfer that much
to/from memory at once. So the CPU reorders instructions to get different
instructions that use different parts of the CPU executing together. In
essence, this is what hyperthreading also does, except it interleaves a
separate flow of execution instead of reordering a single flow.
All of this is part of the reason that function calls are so very expensive.
regards,
George
.
- Follow-Ups:
- Re: Double-Checked Locking pattern issue
- From: George
- Re: Double-Checked Locking pattern issue
- References:
- Re: Double-Checked Locking pattern issue
- From: Igor Tandetnik
- Re: Double-Checked Locking pattern issue
- From: George
- Re: Double-Checked Locking pattern issue
- From: Igor Tandetnik
- Re: Double-Checked Locking pattern issue
- From: George
- Re: Double-Checked Locking pattern issue
- Prev by Date: Re: MSDN volatile sample
- Next by Date: Re: Using TLSAlloc to read data into a DLL
- Previous by thread: Re: Double-Checked Locking pattern issue
- Next by thread: Re: Double-Checked Locking pattern issue
- Index(es):
Relevant Pages
|