On my Core 2 Duo machine, ComputerSpecifications.cs gives an exception on the line
L3KBytes = (int)(uint)mo["L3CacheSize"];
to fix this I changed it to
L3KBytes = (int)TryGet(mo, "L3CacheSize", 0);
with a helper method
static T TryGet<T>(ManagementObject mo, string key, T @default)
{
try { return (T)mo[key]; }
catch (ManagementException) { return @default; }
}
The performance test program has a very "interesting" effect on my PC (WinXP, Intel Core 2 Duo, 2 cores). All of the disruptor tests LOCK UP THE SYSTEM to some degree! Sometimes the console window will be the only window that responds to input (i.e. I can move it), and sometimes even that window completely locks up. The first time I ran the tests (in the VS2010 debugger) it locks up completely for a very long time on the tenth test. I waited for 10-15 minutes, clicking the Visual Studio "pause" button occasionally, but VS (and all other apps) never responded to a single mouse click in all that time and I eventually decided to reset the system. I found out later that the test that locks up the system indefinitely is
_implementationName="Disruptor"
_scenarioName="Sequencer3P1C"
The workaround is to use Windows Task Manager to lower the process priority from "Normal" to "Low". But I have to be sure to do this quickly after the test program starts because Task Manager itself completely locks up for extended periods, just like everything else. With the priority on "low", disruptor is no longer disruptive.
So, what's up with the project, is it dead?