using System.Diagnostics;
public static void Main()
Stopwatch s1 = new Stopwatch();
for(var i = 0; i<10000000; i++) {
Console.WriteLine(s1.ElapsedMilliseconds);
for(var i = 0; i<10000000; i++) {
Console.WriteLine(s1.ElapsedMilliseconds);
[System.Runtime.CompilerServices.MethodImpl(
System.Runtime.CompilerServices.MethodImplOptions.NoInlining |
System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
public static int Display(IShape s, int a, int b) {
[System.Runtime.CompilerServices.MethodImpl(
System.Runtime.CompilerServices.MethodImplOptions.NoInlining |
System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
public static int Do(Shape s, int a, int b) {
public class Shape: IShape {
[System.Runtime.CompilerServices.MethodImpl(
System.Runtime.CompilerServices.MethodImplOptions.NoInlining |
System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
int IShape.Do(int a, int b) {
[System.Runtime.CompilerServices.MethodImpl(
System.Runtime.CompilerServices.MethodImplOptions.NoInlining |
System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
public virtual int Do(int a, int b) {
public class Circle: Shape, IShape {
[System.Runtime.CompilerServices.MethodImpl(
System.Runtime.CompilerServices.MethodImplOptions.NoInlining |
System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
int IShape.Do(int a, int b) {
[System.Runtime.CompilerServices.MethodImpl(
System.Runtime.CompilerServices.MethodImplOptions.NoInlining |
System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
public override int Do(int a, int b) {
public interface IShape {