如何在变量中存储cftimer显示的时间?

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(绝对值没有意义),否则无关紧要.


Tra*_*vis 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>
Run Code Online (Sandbox Code Playgroud)

我有一个项目依赖于客户订阅的大量外部数据.我将各个进程的所有处理时间保存到会话结构中,这样我就可以看到它是我还是导致速度变慢的第三方Web服务之一.如果其中一个Web服务陷入困境,我会提醒客户,以便他们决定是否要选择其他服务.