我想知道一个特定函数使用了多少毫秒.所以我看起来很高,但是找不到以毫秒精度在Ruby中获取时间的方法.
你怎么做到这一点?在大多数编程语言中它只是像
start = now.milliseconds
myfunction()
end = now.milliseconds
time = end - start
Run Code Online (Sandbox Code Playgroud) 我需要一个准确的计时器,而DateTime.Now似乎不够准确.从我读到的描述中,System.Diagnostics.Stopwatch似乎正是我想要的.
但我有恐惧症.我对在实际生产代码中使用System.Diagnostics中的任何内容感到紧张.(我广泛使用Asserts和PrintLns等进行调试,但从未用于生产.)我不仅仅是尝试使用计时器来测试我的功能 - 我的应用程序需要一个实际的计时器.我在另一个论坛上看到System.Diagnostics.StopWatch仅用于基准测试,不应该在零售代码中使用,尽管没有给出理由.这是正确的,还是我(以及任何发布该建议的人)对System.Diagnostics过于封闭?即,在生产代码中使用System.Diagnostics.Stopwatch是否可以?谢谢阿德里安
我正在尝试一些代码来实现计划任务,并提出了这些代码.
import java.util.*;
class Task extends TimerTask {
int count = 1;
// run is a abstract method that defines task performed at scheduled time.
public void run() {
System.out.println(count+" : Mahendra Singh");
count++;
}
}
class TaskScheduling {
public static void main(String[] args) {
Timer timer = new Timer();
// Schedule to run after every 3 second(3000 millisecond)
timer.schedule( new Task(), 3000);
}
}
Run Code Online (Sandbox Code Playgroud)
我的输出:
1 : Mahendra Singh
Run Code Online (Sandbox Code Playgroud)
我期望编译器以3秒的周期间隔打印一系列Mahendra Singh,但是尽管等了大约15分钟,我只得到一个输出......我该如何解决这个问题?
似乎System.Timers.Timer实例通过某种机制保持活跃,但System.Threading.Timer实例却没有.
示例程序,具有定期System.Threading.Timer和自动重置功能System.Timers.Timer:
class Program
{
static void Main(string[] args)
{
var timer1 = new System.Threading.Timer(
_ => Console.WriteLine("Stayin alive (1)..."),
null,
0,
400);
var timer2 = new System.Timers.Timer
{
Interval = 400,
AutoReset = true
};
timer2.Elapsed += (_, __) => Console.WriteLine("Stayin alive (2)...");
timer2.Enabled = true;
System.Threading.Thread.Sleep(2000);
Console.WriteLine("Invoking GC.Collect...");
GC.Collect();
Console.ReadKey();
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行这个程序(.NET 4.0 Client,Release,在调试器之外)时,只有System.Threading.TimerGC是:
Stayin alive (1)...
Stayin alive (1)...
Stayin alive (2)...
Stayin alive (1)...
Stayin …Run Code Online (Sandbox Code Playgroud) 我想在C++中实现一个简单的计时器机制.该代码应该适用于Windows和Linux.分辨率应尽可能精确(至少精确到毫秒).这将用于简单地跟踪时间的流逝,而不是实现任何类型的事件驱动设计.完成此任务的最佳工具是什么?
一直困扰着我的是setTimeout()Javascript中的方法多么难以预测.
根据我的经验,计时器在很多情况下非常不准确.由于不准确,我的意思是实际延迟时间似乎或多或少变化250-500ms.虽然这不是一个大量的时间,但当使用它来隐藏/显示UI元素时,时间可以明显地显着.
是否有任何技巧可以确保setTimeout()准确执行(不使用外部API)或这是一个失败的原因?
为什么.Net框架中有五个计时器类,即:
System.Timers.TimerSystem.Threading.TimerSystem.Windows.Forms.TimerSystem.Web.UI.TimerSystem.Windows.Threading.DispatcherTimer为什么有几个版本的Timer类?它们之间有什么区别?
我知道这听起来很愚蠢,但我已经尝试了一切来停止计时器,但计时器不会停止.我正在做一个游戏,如果有人能告诉我如何停止计时器,我将不胜感激.
我学习的DropWizard指标库(原科达硬朗指标),我很困惑,当我应该使用到MetersVS Timers.根据文件:
仪表:仪表测量一组事件发生的速率
和:
计时器:计时器基本上是事件类型持续时间的直方图和其发生率的计量表
基于这些定义,我无法辨别它们之间的区别.令我感到困惑的是,Timer没有像我期望的那样使用它.对我而言,Timer就是这样:一个计时器; 它应该测量a start()和之间的时间差stop().但似乎Timers也可以捕捉事件发生的速度,感觉就像是踩到了Meters脚趾.
如果我能看到每个组件输出的示例,这可能有助于我理解何时/何处使用其中任何一个.
我有一个html页面"form1.html",它有一个动画图像.我想在5秒后加载另一个页面"form2.html".我该怎么做呢?