Re: Lock Free -- where to start



>> If it seems possible by clever design to reduce the time
>> spent holding a lock to almost nothing, bear in mind
>> that on recent Pentiums just acquiring the lock is going
>> to take over a hundred machine cycles; there is a
>> limit.
>
> The lock-free algorithms generally increase the number of such
> expensive operations,

Not all of them...


> and they add extra cache misses.

A good reader/writer solution can greatly enhance cache performance. If you
really want to be "cache friendly", try to avoid calling atomic operation
and/or StoreLoad style membar instructions.


.



Relevant Pages

  • Re: Problem with BDC "View Profile" link
    ... but it seems to "short circuit" while it is reading the BDC cache. ... 71qj High Acquired Read lock on LobSystemInstance cache ... 71qj High Acquired Read lock on MethodInstance cache ... 71qj High Acquired Read lock on TypeDescriptor cache ...
    (microsoft.public.sharepoint.portalserver.development)
  • Re: How to free a locked object?
    ... timeout occurred while waiting to lock object xxx' ... Upon checking the v$session_wait, i found "latch: cache ... 'DR','Distributed Recovery', ... 'NA','Library Cache Pin', ...
    (comp.databases.oracle.server)
  • Re: ASP requests and locking
    ... Typically you would cache immutable content. ... There is no need to lock ... How many properties will you reading per request and will they ... Anthony Jones - MVP ASP/ASP.NET ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: queued spinlock code and results
    ... max number of times in a row that a lock is acquired, ... xadd-lock in cache takes 8.93ns ... static inline void unlock ... static int xlock_is_locked ...
    (Linux-Kernel)
  • Re: strange performance of nested virtual methods
    ... If you dissasemble the code generated and count machine cycles, ... about the overhead from calling a virtual method, ... The ServiceDecorator Class instantiations inherit the val member, ... This could be verified by disabling the cache and rerunning the tests. ...
    (microsoft.public.dotnet.framework.performance)