gpt4 book ai didi

c# - 计算执行函数所需时间的问题

转载 作者:太空宇宙 更新时间:2023-11-03 20:32:32 24 4
gpt4 key购买 nike

我正在尝试找出运行一个函数所花费的时间。我是这样做的:

SomeFunc(input) {
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();

//some operation on input

stopWatch.Stop();

long timeTaken = stopWatch.ElapsedMilliseconds;
}

现在,根据 SomeFunc 的输入,评论中提到的“对输入的某些操作”会花费大量时间。

问题是当我从主函数多次调用 SomeFunc 时,我只在第一次正确获得 timeTaken,其余时间都被分配为 0。是否有问题用上面的代码?

编辑:有一个包含多个文本字段的 UI,当单击一个按钮时,它被委托(delegate)给 SomeFunc。 SomeFunc 根据输入(来自文本字段)进行一些计算,并将结果显示在 UI 上。因为我已经签署了保密协议(protocol),所以我不能在“输入的某些操作”中共享代码。但是,我可以回答您关于我在那里想要实现的目标的问题。请帮忙。

编辑 2:当第一次调用该函数时,我似乎得到了奇怪的值,正如@Mike Bantegui 提到的,必须进行 JIT 优化,这是我现在能想到的唯一解决方案(执行时间不为零)是以纳秒为单位显示时间。如何在 C# 中显示以纳秒为单位的时间?

最佳答案

好吧,您不会在任何地方输出该数据。理想情况下,您会做更像这样的事情。

void SomeFunc(input)
{
Do sstuff
}

main()
{
List<long> results = new List<long>();
Stopwatch sw = new Stopwatch();
for(int i = 0; i < MAX_TRIES; i++)
{
sw.Start();
SomeFunc(arg);
sw.Stop();
results.Add(sw.ElapsedMilliseconds);
sw.Reset();
}

//Perform analyses and results
}

关于c# - 计算执行函数所需时间的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6741145/

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