关于c ++:检查C#中代码性能的最佳方法

best way to check performance of the code in C#

本问题已经有最佳答案,请猛点这里访问。

我们正在处理两个不同的库,它们往往执行相同的工作。我被指派检查哪个库在给定的一组输入下更快地执行相同的工作。有多个测试用例可以确定这一点,我想检查库执行任务所花费的时间(以毫秒为单位)。

下面是代码的大纲。

1
2
3
4
5
6
7
// preparation of input parameters
// Get the timestamp
// Calling the desired library with the set of input parameters
// again get the timestamp
// Process the output received from the library

// get a diff between timestamp and write it into a file.

我应该用c来做,在阅读一些提供的文档和一些在线搜索时,我想出了以下代码,可以用来测量所用的时间(毫秒)。

1
2
3
4
5
6
7
8
9
10
int s1 = DateTime.Now.Millisecond;
int e1 = DateTime.Now.Millisecond;
int f1 = e1 - s1;
FileStream fs = new FileStream("Time_Diff.txt", FileMode.Append);
StreamWriter sw = new StreamWriter(fs);
string str = Convert.ToString(f1);
sw.WriteLine(str);
sw.WriteLine(e1 +"" + s1);
sw.Flush();
sw.Close();

我只是想知道我的方向是正确的。如果有人能建议我用另一种方法做同样的事情?

我想知道的另一件事是,我可以使用什么其他实用的方法来确保我们选择的库能够提供最佳的性能?

另一个小要求。有人可以让我知道如何实现秒表(或其他类似的方式获得时间戳)在C++中做同样的事情吗?

谢谢,阿泽姆


使用秒表如下。

1
2
3
4
5
6
7
8
        var stopWatch = System.Diagnostics.Stopwatch.StartNew();
        FileStream fs = new FileStream("Time_Diff.txt", FileMode.Append);
        StreamWriter sw = new StreamWriter(fs);
        //Total time required
        sw.WriteLine("
Total time:"
+ stopWatch.Elapsed.TotalSeconds.ToString());
        sw.Flush();
        sw.Close();