C# 里面关于Stopwatch的一个简单问题!!高分!!!
我在程序里面,想测试1个算法的运行时间。然后就用了Stopwatch这个方法。分别用Start()和Stop()来卡住这个算法。(我的问题就是,我发现。如果我不间断地连续...
我在程序里面,想测试 1个算法的运行时间。 然后就用了 Stopwatch这个方法。 分别用 Start()和 Stop()来卡住这个算法。 (我的问题就是,我发现。 如果我不间断地连续测试这个算法的运行时间。 那么第一次的测试时间结果总是比之后测试时间结果大很多(我测试的是相同的算法)。请问这是为什么呢??? 按道理说,第一次和之后的运行时间应该是一样的呀.
代码附上:
using System;
using System.Diagnostics;
using System.Threading;
namespace Assignment2
{
class MainClass
{
static string P = "Butters";
static int m = P.Length;
public static void Main (string[] args)
{
string T="ewbfjkewbvuttersjbfjk";
for (int i = 0; i < 10000; i++) {
T = T +"fhqwiuwbuvjwberuwgbi3butterkvbjewj3frbwfjb";
}
T = T + "Buttersdniufwbk";
int n = T.Length;
mean1 (T, n);
mean1 (T, n);
mean1 (T, n);
mean1 (T, n);
}
static void mean1(string T,int n)
{
Stopwatch stopwatch = new Stopwatch ();
stopwatch.Start ();
for(int i=0;i<= n-m;i++)
{
int j=0;
while(j<m && P[j]==T[i+j])
{
j = j+1;
}
if(j == m)
{
Console.WriteLine(i);
break;
}
}
Console.WriteLine ("The executive time for A1 will be: ");
stopwatch.Stop ();
Console.WriteLine (stopwatch.ElapsedTicks);
}
}
} 展开
代码附上:
using System;
using System.Diagnostics;
using System.Threading;
namespace Assignment2
{
class MainClass
{
static string P = "Butters";
static int m = P.Length;
public static void Main (string[] args)
{
string T="ewbfjkewbvuttersjbfjk";
for (int i = 0; i < 10000; i++) {
T = T +"fhqwiuwbuvjwberuwgbi3butterkvbjewj3frbwfjb";
}
T = T + "Buttersdniufwbk";
int n = T.Length;
mean1 (T, n);
mean1 (T, n);
mean1 (T, n);
mean1 (T, n);
}
static void mean1(string T,int n)
{
Stopwatch stopwatch = new Stopwatch ();
stopwatch.Start ();
for(int i=0;i<= n-m;i++)
{
int j=0;
while(j<m && P[j]==T[i+j])
{
j = j+1;
}
if(j == m)
{
Console.WriteLine(i);
break;
}
}
Console.WriteLine ("The executive time for A1 will be: ");
stopwatch.Stop ();
Console.WriteLine (stopwatch.ElapsedTicks);
}
}
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询