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

Coldfusion 如何将cftimer显示的时间存储在变量中?,coldfusion,coldfusion-9,coldfusion-10,cfml,Coldfusion,Coldfusion 9,Coldfusion 10,Cfml,我想将代码执行所花费的时间存储在coldfusion变量中。 有一个名为cftimer的标记,它显示代码执行所花费的时间。 有没有办法将cftimer标记显示的时间存储在变量中?使用 <cfset var startTicks = GetTickCount() /> <!--- code to benchmark ---> <cfset var ticksTaken = GetTickCount() - startTicks /> 为了更好的控制。请注意

我想将代码执行所花费的时间存储在coldfusion变量中。 有一个名为cftimer的标记,它显示代码执行所花费的时间。 有没有办法将cftimer标记显示的时间存储在变量中?

使用

<cfset var startTicks = GetTickCount() />
<!--- code to benchmark --->
<cfset var ticksTaken = GetTickCount() - startTicks />


为了更好的控制。请注意,刻度是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>

处理该页面花费了#processTime#毫秒

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

谢谢,这真的很有帮助。感谢上述解释。