public void CallPerfCounter()
{
const int baseLineSingleThreadRunsPerSec = 2700;
const int baseLineMultiThreadRunsPerSec = 9500; // 10000;
var dal = new SomeTestClass();
long runsPerSec;
int parmInt = 123;
string parmStr = "bogus";
bool parmBool = false;
decimal parmDec = 1.0m;
int[] arr = {1, 2, 3, 4, 5};
runsPerSec = RunCounter.SpinParallelPerSec(MillisecToRun, () => dal.GetProxy().Invoke(ctx => ctx.DoNothing(parmInt, parmStr, parmBool, parmDec, arr)));
this.TestContext.WriteLine("Worst case scenario: DoNothing() INSTANCE PROXIED PARALLEL VARPARAMS got {0} cps, with expected {1} cps.", runsPerSec, baseLineMultiThreadRunsPerSec);
//Assert.IsTrue(runsPerSec >= baseLineMultiThreadRunsPerSec);
runsPerSec = RunCounter.SpinPerSec(MillisecToRun, () => dal.GetProxy().Invoke(ctx => ctx.DoNothing(parmInt, parmStr, parmBool, parmDec, arr)));
this.TestContext.WriteLine("DoNothing() INSTANCE PROXIED SEQUENTIAL VARPARAMS got {0} cps, with expected {1} cps.", runsPerSec, baseLineSingleThreadRunsPerSec);
//Assert.IsTrue(runsPerSec >= baseLineSingleThreadRunsPerSec);
}