我正在开发一个非常非常关键的应用程序。我想在代码中放置一个日志编写器,以便我可以跟踪事件并找出应用程序浪费时间的位置。但问题是vb.net只能以15.25毫秒的间隔告诉时间该做什么。尽管msdn文档说我们可以用毫秒来获得时间。 要更好地理解我的问题,请阅读以下代码。此代码是在按钮的单击事件上编写的,它会将时间写入日志文件中。 问题是它写的时间比如16,16,16,经过一段时间后,当dx值达到5000时,它会跳到31然后再到46,依此类推。任何人都可以解释。
dx = 1
While dx <= 100000
dx = dx + 1
SRLog1.WriteLine("dx vALUE > " & CStr(dx) & " Ticks -> " + CStr(Now.Millisecond))
End While
答案 0 :(得分:3)
您可以使用秒表类创建分辨率更高的增量时钟。例如:
Dim sw = Stopwatch.StartNew()
Dim start = sw.Elapsed
'' Do stuff
'' ...
Dim sample = sw.Elapsed
Console.WriteLine(sample - start)
对于代码段中的代码来说,这仍然不太可能有效,递增整数所需的时间不到半纳秒。您实际上会测量记录所需的时间,它应该足够慢以获得不同的输出值。
答案 1 :(得分:1)
如果您想知道应用程序的哪些部分正在等待时间,那么您应该尝试使用分析器。两种可能的产品是JetBrains dotTrace和RedGates ANTS。您还应该在这里查看this question。