Opentk/Source/Examples/Tests/MathSpeed.cs
the_fiddler ec7315500e New sample browser with documentation and source code display.
Reduced example categories to OpenGL, OpenAL, OpenTK. Updated all samples to reflect this change.
Moved startup and loading code into separate files.
2009-04-20 07:20:25 +00:00

95 lines
3.1 KiB
C#

#region --- License ---
/* Copyright (c) 2006, 2007 Stefanos Apostolopoulos
* See license.txt for license info
*/
#endregion
using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using OpenTK.Math;
namespace Examples.Tests
{
[Example("Math speed test", ExampleCategory.OpenTK, "Test", Visible = false)]
public class MathSpeed
{
public static void Main()
{
/*
Stopwatch watch = new Stopwatch();
Vector3 a = new Vector3(0.0f, 0.0f, 0.0f);
Vector3 b = new Vector3(1.0f, 1.0f, 1.0f);
Vector3 c = new Vector3(3.0f, 3.0f, 3.0f);
Vector3 d = new Vector3(4.0f, 4.0f, 4.0f);
Vector3 e = Vector3.Zero;
Vector3 res;
// Force the JIT to compile the functions.
Vector3.Add(a, b);
Vector3.Add(ref a, ref b, out res);
res = a + b;
res = Vector3.Zero;
watch.Reset();
watch.Start();
for (int i = 100000000; --i != 0; )
;
watch.Stop();
Trace.WriteLine(String.format("Noop\t\t\t\t\t\t{0}ns", (watch.Elapsed.TotalSeconds / 10.0).ToString()));
watch.Reset();
watch.Start();
for (int i = 100000000; --i != 0; )
res = Vector3.Add(res, a);
watch.Stop();
res += res; // To make sure the whole for-loop isn't optimized-out
Trace.WriteLine(String.format("res = Vector3.Add(a, b)\t\t\t{0}ns", (watch.Elapsed.TotalSeconds / 10.0).ToString()));
res = Vector3.Zero;
watch.Reset();
watch.Start();
for (int i = 100000000; --i != 0; )
res = res + a;
watch.Stop();
res += res; // To make sure the whole for-loop isn't optimized-out
Trace.WriteLine(String.format("res = a + b\t\t\t\t\t{0}ns", (watch.Elapsed.TotalSeconds / 10.0).ToString()));
watch.Reset();
watch.Start();
for (int i = 100000000; --i != 0; )
Vector3.Add(ref res, ref a, out res);
watch.Stop();
res += res; // To make sure the whole for-loop isn't optimized-out
Trace.WriteLine(String.format("Vector3.Add(ref a, ref b, out res)\t{0}ns", (watch.Elapsed.TotalSeconds / 10.0).ToString()));
*/
/*
a = Vector3.UnitX;
b = Vector3.UnitY;
res = Vector3.Add(ref a, ref b);
Trace.WriteLine(res.ToString());
a = Vector3.UnitX;
b = Vector3.UnitY;
Vector3.Add(a, b, out res);
Trace.WriteLine(res.ToString());
Vector2Im q = new Vector2(0.0f, 1.0f);
Vector2Im p = new Vector2(2.0f, 3.0f);
Vector2Im s = Vector2.Add(p, q);
p = s + q;
*/
}
//static Vector3 pos = new Vector3();
//static Vector3 Pos
//{
// get { return pos; }
// set { pos = value; }
//}
}
}