This post is about improving the performance of a load test when running the test on a multi-processor machine.  If you are running on a multi-processor machine it is much better to have the process which is generating load use server GC as opposed to workstation GC.  By default, processes will use workstation GC.  For more information on the differences between the 2, check out these posts:

http://blogs.msdn.com/clyon/archive/2004/09/08/226981.aspx

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/scalenetchapt05.asp

 

 

To enable your application to use Serve GC, you need to modify either the VSTestHost.exe.config or the QTAgent.exe.config.  If you are not using a Controller and Agent setup, then you need to modify the VSTesthost.exe.config. If you are using a controller and agent, then modify the QTAgent.exe.config for each agent machine.

Open the correct file.  The locations are

VSTestHost.exe.config - C:\Program Files\Microsoft Visual Studio 8\Common7\IDE

QTAgent.exe.config - C:\Program Files\Microsoft Visual Studio 2005 Team Test Load Agent\LoadTest

To enable gcserver you need to add the following line in the runtime section:

<gcServer enabled="true" />

It should look something like:

<?xml version ="1.0"?>
<configuration>
    <runtime>
        <gcServer enabled="true" />
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <probing privatePath="PrivateAssemblies;PublicAssemblies"/>
        </assemblyBinding>
    </runtime>
</configuration>