我需要弄清楚一些代码在Velocity (VTL)中花费了多长时间。如下所示:
#set(start = getTickCount())
... do some stuff that takes a while ...
#set(end = getTickCount())
#set(time = end - start)
It took $time milliseconds!
Velocity是否有一个getTickCount()函数或类似的函数?还有没有其他推荐的分析方法?
我经常使用System.Diagnostics.Stopwatch来度量代码执行所需的时间。文件上说它应该很精确。我认为,测量的时间只能通过时间与事实不同,而时间是用来启动和停止秒表的。
通过下面的代码,我估计了这个错误可能有多大:
var sw = new Stopwatch();
sw.Start();
sw.Stop();
它测量了: 00:00:00.0000090。哇。错误在10 is以下。
几年后,我又开始对秒表产生好奇了。真的这么精确吗?它能测量挂钟时间吗?或者它究竟测量的是什么定义?如果进程被IO操作阻塞了怎么办?它还那么精确吗?
我又做了一个小小的基准:
var sw = n
我有很多Command对象。每个命令都有很多Task对象。任务和命令是相关的。每个命令都想知道哪个任务属于它。每个任务都想知道它属于哪个命令。
class Command:
def __init__(self, date):
self.deadline = date
self.tasks = []
def add_task(self, task:Task):
"""
add a task to this command
"""
se