2013-04-03 54 views

回答

10

使用

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

爲更好地控制。請注意,蜱是毫秒,除非差異(絕對值無意義),否則不相關。

+0

謝謝,這真的很有幫助。 – Pankaj

2

如果可以的話,那將是非常棘手的事,並試圖採取方掛出一個圓洞。但是你可以很容易地使用getTickCount()拿...好...滴答計數前和手術後,以及兩者之間的區別是你的時間。然後你可以用你想要的做什麼。

+0

雅,我明白了。謝謝。 – Pankaj

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> 

我有一個項目依賴於客戶訂閱的大量外部數據。我將單個進程的所有處理時間保存到會話結構中,以便我可以查看是我還是導致速度減慢的第三方Web服務之一。如果其中一項Web服務陷入低谷,我會提醒客戶,以便他們決定是否要選擇不同的服務。

+0

感謝您的上述解釋。 – Pankaj