gpt4 book ai didi

c# - 衡量代码执行时间的最佳方法是什么?

转载 作者:IT王子 更新时间:2023-10-29 03:57:15 27 4
gpt4 key购买 nike

我正在尝试确定哪种删除字符串的方法最快

我只是获取开始结束时间并显示差异。

但结果是如此变化,例如如下所示,相同的方法可能需要 60 毫秒到 231 毫秒。

获得更准确结果的更好方法是什么?

alt text http://www.deviantsart.com/upload/1q4t3rl.png

using System;
using System.Collections;
using System.Collections.Generic;

namespace TestRemoveFast
{
class Program
{
static void Main(string[] args)
{
for (int j = 0; j < 10; j++)
{
string newone = "";
List<string> tests = new List<string>();
for (int i = 0; i < 100000; i++)
{
tests.Add("{http://company.com/Services/Types}ModifiedAt");
}

DateTime start = DateTime.Now;
foreach (var test in tests)
{
//newone = ((System.Xml.Linq.XName)"{http://company.com/Services/Types}ModifiedAt").LocalName;
newone = Clean(test);
}

Console.WriteLine(newone);
DateTime end = DateTime.Now;
TimeSpan duration = end - start;
Console.WriteLine(duration.ToString());
}

Console.ReadLine();
}

static string Clean(string line)
{
int pos = line.LastIndexOf('}');
if (pos > 0)
return line.Substring(pos + 1, line.Length - pos - 1);
//return line.Substring(pos + 1);
else
return line;
}
}
}

最佳答案

你应该使用 System.Diagnostics.Stopwatch ,并且您可能需要考虑大样本。例如,重复此测试大约 10,000 次并对结果进行平均。如果从科学的角度考虑,这是有道理的。样本越大越好。您可以通过这种方式剔除大量边缘情况,真正了解核心性能。

另一件需要考虑的事情是,JIT 编译和对象创建肯定会扭曲您的结果,因此请确保您在适当的时间启动和停止秒表,并在开始您的测试之前至少调用一次您想要测试的方法测试。尽量将您要测试的部分与其余代码分开。

关于c# - 衡量代码执行时间的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2072361/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com