计算方程的时间

时间:2015-05-18 21:32:28

标签: c# asp.net asp.net-mvc

我有两个方程,当我为每个方程做算法时,如何计算每个方程的时间。

我有等式ex(int x=(y+x-z)/y)和另一个(int a=(a+b/c)*q),我想知道哪个更快。我想计算每个方程的时间,并在c#中找到哪个更快。

2 个答案:

答案 0 :(得分:0)

使用StopwatchSystem.Diagnostics.Stopwatch)。

例如:

Stopwatch sw = new Stopwatch();
sw.Start();

// Run your equation here.

sw.Stop();
var elapsed = sw.ElapsedMilliseconds;
Console.Write(elapsed.ToString());

请注意,您应该多次运行测试以获得准确的表示。

答案 1 :(得分:-3)

这是一种方法。首先(可选,但它可以保持主代码更清晰),创建两个可以调用的方法来进行计算:

public static int EquasionOne(int x, int y, int z)
{
    return (y + x - z) / y;
}

public static int EquasionTwo(int a, int b, int c, int q)
{
    return (a + b / c) * q;
}

然后,使用Stopwatch,将每个方法调用相同的次数并比较结果。下面的代码使用ElapsedTicks,但您也可以使用ElapsedMiliseconds,或者如果它真的长时间运行,您可以使用Elapsed属性本身,这是TimeSpan:< / p>

public static void Main()
{
    const int iterations = 10000;
    var sw = new Stopwatch();

    sw.Start();
    for (int i = 0; i < iterations; i++)
    {
        var z = EquasionOne(1, 2, 3);
    }
    sw.Stop();
    Console.WriteLine("Equation one took: {0} ticks", sw.ElapsedTicks);

    sw.Restart();
    for (int i = 0; i < iterations; i++)
    {
        var z = EquasionTwo(1, 2, 3, 4);
    }
    sw.Stop();
    Console.WriteLine("Equation two took: {0} ticks", sw.ElapsedTicks);
}