我需要找到一个瓶颈,并且需要准确地测量时间.
以下代码段是衡量性能的最佳方法吗?
DateTime startTime = DateTime.Now;
// Some execution process
DateTime endTime = DateTime.Now;
TimeSpan totalTimeTaken = endTime.Subtract(startTime);
Run Code Online (Sandbox Code Playgroud) 在集合上使用Linq,以下代码行之间有什么区别?
if(!coll.Any(i => i.Value))
Run Code Online (Sandbox Code Playgroud)
和
if(!coll.Exists(i => i.Value))
Run Code Online (Sandbox Code Playgroud)
更新1
当我反汇编.Exists它看起来没有代码.
更新2
任何人都知道为什么这个没有代码?
您在使用.net程序时使用了哪些分析器,您会特别推荐哪些?
我想知道程序/功能/订单需要多长时间才能完成测试.
这是我做的,但我的方法是错误的'因为如果秒的差异为0则无法返回经过的毫秒:
请注意,睡眠值为500毫秒,因此经过的秒数为0,则无法返回毫秒数.
Dim Execution_Start As System.DateTime = System.DateTime.Now
Threading.Thread.Sleep(500)
Dim Execution_End As System.DateTime = System.DateTime.Now
MsgBox(String.Format("H:{0} M:{1} S:{2} MS:{3}", _
DateDiff(DateInterval.Hour, Execution_Start, Execution_End), _
DateDiff(DateInterval.Minute, Execution_Start, Execution_End), _
DateDiff(DateInterval.Second, Execution_Start, Execution_End), _
DateDiff(DateInterval.Second, Execution_Start, Execution_End) * 60))
Run Code Online (Sandbox Code Playgroud)
有人能告诉我更好的方法吗?也许有一个TimeSpan?
解决方案:
Dim Execution_Start As New Stopwatch
Execution_Start.Start()
Threading.Thread.Sleep(500)
MessageBox.Show("H:" & Execution_Start.Elapsed.Hours & vbNewLine & _
"M:" & Execution_Start.Elapsed.Minutes & vbNewLine & _
"S:" & Execution_Start.Elapsed.Seconds & vbNewLine & _
"MS:" & Execution_Start.Elapsed.Milliseconds & vbNewLine, _
"Code execution time", MessageBoxButtons.OK, …Run Code Online (Sandbox Code Playgroud) 这是一个非常基本的问题......非常令人尴尬,但这里有:
我有一个C#代码的秒表块.我以刻度确定经过的时间,然后想要转换为ns,ms,s.我知道频率是由秒表类提供的,并且它是转换所必需的.
谢谢
我想看一个函数运行多长时间.所以我在表单上添加了一个计时器对象,我出来了这段代码:
private int counter = 0;
// Inside button click I have:
timer = new Timer();
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
Result result = new Result();
result = new GeneticAlgorithms().TabuSearch(parametersTabu, functia);
timer.Stop();
Run Code Online (Sandbox Code Playgroud)
和:
private void timer_Tick(object sender, EventArgs e)
{
counter++;
btnTabuSearch.Text = counter.ToString();
}
Run Code Online (Sandbox Code Playgroud)
但这并不算什么.为什么?
如何使用PerfMon计数器记录C#中方法的平均执行时间?
到目前为止,我只找到了增加或减少PerfMon计数器的示例代码.
我想计算任何操作所花费的时间并将其保存在数据库中。我不在所有行动中使用秒表。
我正在寻找一种可以应用于整个项目 asp.net MVC 的方法,换句话说,每次执行操作时都会发生一个事件?
我有一个 powershell 脚本,目前通过任务调度程序每 4 小时运行一次。它会清理驱动器,完成后它会向我发送一封电子邮件,告诉我它移动了什么以及执行此任务所需的时间和位置。
但是,我似乎对它最后显示的时间有问题。我最近收到一封电子邮件,说它花了 4 分钟,而我知道它花了将近 30 分钟。
基本结构如下所示:
$StopWatch = new-object system.diagnostics.stopwatch
$StopWatch.Start()
Do { All this stuff }
While(This condition is false)
$StopWatch.Stop()
$Minutes = $StopWatch.elapsed.minutes
Run Code Online (Sandbox Code Playgroud)
我在这里缺少什么?这东西只是读取系统时间,然后在.elapsed访问时将其与当前时间进行比较,对吗?
在C#中,如果我DateTime.UtcNow在同一个进程中调用两次,是否可以保证第二次调用的时间晚于第一次调用?
背景是我们有一个应用程序通过调用记录每个任务的开始时间和结束时间DateTime.UtcNow,对于一个任务,我们观察到结束时间甚至早于开始时间.对于cource,我们的应用程序足够复杂,因此在深入调查之前,我不能排除其他可能性,但至少想要了解它是否可能在以后调用DateTime.UtcNow返回更早的时间.
提前致谢.
我想记录执行自定义方法所需的时间,但我以前从未使用过计时器类或方法,我知道我做错了.
这就是我所拥有的.
System.Timers.Timer Time;
int Mili = 0 ;
data = Generate();
Time.Enabled = true;
BSort= BubbleSort(data);
Time.Enabled = false;
Run Code Online (Sandbox Code Playgroud) 我在一个方法中尝试了以下代码:
Trace.Write("START "+Datetime.now);
//DATABASE METHOD CALL
SaveData();
Trace.Write("END "+Datetime.now);
Run Code Online (Sandbox Code Playgroud)
我output window手动计算时间.
如何使用stopwatch(启动/重置/停止)来获得正确的执行时间?
c# ×11
.net ×5
datetime ×3
asp.net-mvc ×2
performance ×2
stopwatch ×2
timer ×2
collections ×1
elapsedtime ×1
linq ×1
perfmon ×1
powershell ×1
profiler ×1
profiling ×1
timespan ×1
vb.net ×1