mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-19 20:39:01 +00:00
107 lines
3.3 KiB
C#
107 lines
3.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace Performance {
|
|
class Program {
|
|
[DllImport("kernel32.dll")]
|
|
static extern uint GetTickCount();
|
|
|
|
static int Do (int aOne, int aTwo) {
|
|
var xOne = aOne;
|
|
var xResult = xOne + aTwo;
|
|
return xResult;
|
|
}
|
|
|
|
private static string IntToHex(uint aValue) {
|
|
string xResult = "";
|
|
uint xValue = aValue;
|
|
byte xCurrentBits = 32;
|
|
while (xCurrentBits >= 4) {
|
|
xCurrentBits -= 4;
|
|
byte xCurrentDigit = (byte)((xValue >> xCurrentBits) & 0xF);
|
|
string xDigit = null;
|
|
switch (xCurrentDigit) {
|
|
case 0:
|
|
xDigit = "0";
|
|
break;
|
|
case 1:
|
|
xDigit = "1";
|
|
break;
|
|
case 2:
|
|
xDigit = "2";
|
|
break;
|
|
case 3:
|
|
xDigit = "3";
|
|
break;
|
|
case 4:
|
|
xDigit = "4";
|
|
break;
|
|
case 5:
|
|
xDigit = "5";
|
|
break;
|
|
case 6:
|
|
xDigit = "6";
|
|
break;
|
|
case 7:
|
|
xDigit = "7";
|
|
break;
|
|
case 8:
|
|
xDigit = "8";
|
|
break;
|
|
case 9:
|
|
xDigit = "9";
|
|
break;
|
|
case 10:
|
|
xDigit = "A";
|
|
break;
|
|
case 11:
|
|
xDigit = "B";
|
|
break;
|
|
case 12:
|
|
xDigit = "C";
|
|
break;
|
|
case 13:
|
|
xDigit = "D";
|
|
break;
|
|
case 14:
|
|
xDigit = "E";
|
|
break;
|
|
case 15:
|
|
xDigit = "F";
|
|
break;
|
|
}
|
|
Console.Write(xDigit);
|
|
xResult = xResult + xDigit;
|
|
}
|
|
Console.WriteLine();
|
|
return xResult;
|
|
}
|
|
|
|
const int LoopSize = 50 * 1000 * 1000;
|
|
static void Main (string[] args) {
|
|
Console.WriteLine("Hello");
|
|
//for JIT
|
|
//Also to kick a out SpeedStep
|
|
for (int j = 1; j <= LoopSize; j++) {
|
|
var x = Do(j, 5);
|
|
}
|
|
Console.WriteLine("Starting Test");
|
|
|
|
//Now do test run
|
|
var xStart = GetTickCount();
|
|
|
|
for (int j = 1; j < LoopSize; j++) {
|
|
var x = Do(j, 5);
|
|
}
|
|
|
|
var xFinish = GetTickCount();
|
|
var xTime = xFinish - xStart;
|
|
IntToHex(xStart);
|
|
IntToHex(xFinish);
|
|
IntToHex(xTime);
|
|
Console.WriteLine("Bye");
|
|
}
|
|
}
|
|
}
|