Pan*_*kaj 3 coldfusion coldfusion-9 coldfusion-10 cfml
我想存储代码在coldfusion变量中执行所花费的时间.有一个名为cftimer的标记,显示代码执行所花费的时间.有没有办法将cftimer标签显示的时间存储在变量中?
Max*_*axH 11
使用
<cfset var startTicks = GetTickCount() />
<!--- code to benchmark --->
<cfset var ticksTaken = GetTickCount() - startTicks />
Run Code Online (Sandbox Code Playgroud)
为了更好的控制.注意,滴答是ms,除非是diffing(绝对值没有意义),否则无关紧要.
正如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>
Run Code Online (Sandbox Code Playgroud)
我有一个项目依赖于客户订阅的大量外部数据.我将各个进程的所有处理时间保存到会话结构中,这样我就可以看到它是我还是导致速度变慢的第三方Web服务之一.如果其中一个Web服务陷入困境,我会提醒客户,以便他们决定是否要选择其他服务.