Check out "Using mscorsvr.dll" thread on performance news group.
"Ben" <bmeyvin@yahoo.com> wrote in message
news:f839a90f.0401290727.159c9037@posting.google.com...
> Hi,
>
> I am developing a multi-threaded windows service in C#. It is intended
> to run on a multi-processor server. Single Application domain. To the
> best of my knowledge there is a direct mapping between logical CLR
> (Systsem.Threading.Thread) threads and physical OS
> (System.Diagnostics.ProcessThread) threads. Does it mean that threads
> in the windows service will be scheduled by OS to run on all
> processors? Does direct mapping between logical and physical threads
> in .NET intrinsically means support for a multi-processor platform?
>
> Microsoft patterns and practices Team has recently published a draft
> of its "Improving .NET Application Performance and Scalability" book
> for a public review
http://www.theserverside.net/booksinreview/pag.aspx > In Chapter 13th "Improving Remoting Performance" it says:
>
> "There are two implementations of the CLR and its garbage collection
> mechanism: One is designed for single CPU computers. This is MSCORWKS,
> known as the Workstation garbage collector (GC). The other is designed
> to handle multiple CPU computers. This is MSCORSVR, known as the
> Server GC. ASP.NET uses the server GC on multi-processor servers. The
> Server GC is optimized to maximize throughput and scalability".
>
> "Windows Service. You can create a Windows service to host your remote
> objects. Doing so does not allow you to load the Server GC, and you
> are limited to the Workstation GC".
>
> Does it imply that a multi-threaded windows service is restricted to a
> single cpu on a multi-processor machine?
>
> Thank you for your help,
> Ben