a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
52 lines
1.0 KiB
C#
52 lines
1.0 KiB
C#
using System;
|
|
|
|
namespace Slow
|
|
{
|
|
public interface ITest
|
|
{
|
|
void DoNothing<T>()
|
|
where T : class;
|
|
}
|
|
|
|
public class Test : ITest
|
|
{
|
|
public void DoNothing<T>()
|
|
where T : class
|
|
{
|
|
T x = null;
|
|
}
|
|
}
|
|
|
|
class Program
|
|
{
|
|
public static void Main(string[] args)
|
|
{
|
|
const int iterations = 10000;
|
|
|
|
Test test = new Test ();
|
|
|
|
DateTime start = DateTime.Now;
|
|
Console.Write ("Calling Test.DoNothing<Program>() on an object reference... ");
|
|
for (int i = 0; i < iterations; ++i)
|
|
{
|
|
test.DoNothing<Program> ();
|
|
}
|
|
DateTime end = DateTime.Now;
|
|
TimeSpan duration = end - start;
|
|
Console.WriteLine ("Took " + duration.TotalMilliseconds + " ms.");
|
|
|
|
ITest testInterface = test;
|
|
|
|
start = DateTime.Now;
|
|
Console.Write ("Calling Test.DoNothing<Program>() on an interface reference... ");
|
|
for (int i = 0; i < iterations; ++i)
|
|
{
|
|
testInterface.DoNothing<Program> ();
|
|
}
|
|
end = DateTime.Now;
|
|
duration = end - start;
|
|
Console.WriteLine ("Took " + duration.TotalMilliseconds + " ms.");
|
|
}
|
|
}
|
|
}
|