【发布时间】:2009-11-12 10:36:49
【问题描述】:
我想在php、c、python、Java、javascript等各种平台上测量for循环的执行时间......我该如何测量呢?
我知道这些平台,所以我说的是这些:
for (i = 0; i < 1000000; i++)
{
}
我不想在循环中测量任何东西。
一点点修改:
@all 我的一些朋友说编译器会优化这段代码,使这个循环成为无用的循环。我同意这一点。我们可以像一些增量语句一样添加一个小语句,但事实是我只想计算各种语言循环中每次迭代的执行时间。通过添加增量语句将增加执行时间,这将影响结果,导致在各种平台上,递增值的执行时间也不同,这将使结果无用。 简而言之,我应该以更好的方式问:
我想在各种平台上循环计算每次迭代的执行时间..如何做到这一点???
编辑---
我知道Python Profilers 探查器模块...评估 cpu 时间...绝对时间..任何建议???同时我正在处理这个...
【问题讨论】:
-
如果您解释为什么要这样做可能会有所帮助(除非只是为了学习如何)。您是否正在尝试优化某些特定代码?你在比较各种语言吗?
-
由于循环中没有主体,许多编译器会认识到循环没有副作用,并简单地将其优化为不存在。几乎不可能测量“空”结构所需的时间,例如没有主体的“if”和没有主体的“while”。
-
@edan maor 是的,我正在比较各种语言,只是为了学习观点@S.Lott 你可以添加简单的方程,如 int x=0;然后继续增加它。
-
@piemesons:请不要评论您自己的问题。你“拥有”这个问题。你可以更新它。请更新问题以向您的问题添加更多事实。
-
添加增量或类似循环体的东西会严重影响结果,因为增量所花费的时间与时间循环处理指令所花费的数量级相同。