我遇到过一种简单的.net fibonnacci代码在一组特定服务器上速度较慢的情况,唯一明显不同的是CPU:
为x86编译代码并使用.NET Framework 4.0。
Fibonnacci代码:
class Program
{
static void Main(string[] args)
{
const int ITERATIONS = 10000;
const int FIBONACCI = 100000;
var watch = new Stopwatch();
watch.Start();
DoFibonnacci(ITERATIONS, FIBONACCI);
watch.Stop();
Console.WriteLine("Total fibonacci time: {0}ms", watch.ElapsedMilliseconds);
Console.ReadLine();
}
private static void DoFibonnacci(int ITERATIONS, int FIBONACCI)
{
for (int i = 0; i < ITERATIONS; i++)
{
Fibonacci(FIBONACCI);
}
}
private static int Fibonacci(int x)
{
var previousValue = -1;
var currentResult = 1;
for (var i = 0; i <= x; ++i)
{
var sum = currentResult + previousValue;
previousValue = currentResult;
currentResult = sum;
}
return currentResult;
}
}
有关正在发生的事情的任何想法?
答案 0 :(得分:0)
这是正常的 - 不同的CPU模型可以具有不同的体系结构,并且对于相同频率的特定任务具有不同的性能。您所指的基准由一组不同的计算任务组成,可能与您的特定任务无关。