我想将代码执行所花费的时间存储在冷融合变量中。有一个名为 cftimer 的标签显示代码执行所用的时间。有没有办法将 cftimer 标签显示的时间存储在变量中?
问问题
953 次
3 回答
11
采用
<cfset var startTicks = GetTickCount() />
<!--- code to benchmark --->
<cfset var ticksTaken = GetTickCount() - startTicks />
为了更好的控制。请注意,刻度是 ms,除非有差异(绝对值没有意义),否则它是无关紧要的。
于 2013-04-03T09:01:35.190 回答
5
正如 Adam 和 MaxH 所说,您将希望使用getTickCount()
脚本来计时。
getTickCount() 不仅用于故障排除,您还可以用它做很多很酷的事情。如果您愿意,您也可以在您的onRequest
函数中执行此操作,以对所有脚本进行计时,并在需要时对长脚本做出反应。
<cffunction name = "onRequest">
<cfargument name = "targetPage" ...>
<cfset startTime = getTickCount()>
<cfinclude template = "#arguments.targetPage#">
<cfset processTime = getTickCount()-startTime>
<cfif structKeyExists(url,"showTime")>
<cfoutput>The page took #processTime# milliseconds to process</cfoutput>
</cfif>
<!--- you could also do other stuff like record processing times to a db or send alerts if processTime > somevalue --->
</cffunction>
我有一个项目依赖于客户订阅的大量外部数据。我将各个进程的所有处理时间保存到会话结构中,这样我就可以查看是我还是导致速度变慢的第 3 方 Web 服务之一。如果其中一项 Web 服务出现故障,我会提醒客户,以便他们决定是否要选择其他服务。
于 2013-04-03T10:46:34.257 回答
2
如果可以的话,这样做会很棘手,并试图从圆孔中取出一个方钉。但是,您可以轻松地使用getTickCount()
...好吧...手术前后的滴答计数,两者之间的差异是您的持续时间。然后你可以用你想要的做。
于 2013-04-03T09:01:39.947 回答