Я хочу сохранить время, затраченное кодом для выполнения в переменной coldfusion. Существует тег cftimer, который отображает время выполнения кода. Есть ли способ сохранить время, отображаемое тегом cftimer в переменной?Как хранить время, показанное cftimer в переменной?
ответ
Использование
<cfset var startTicks = GetTickCount() />
<!--- code to benchmark --->
<cfset var ticksTaken = GetTickCount() - startTicks />
для лучшего контроля. Обратите внимание, что тики являются ms и не имеют значения, если они не отличаются (абсолютное значение не имеет значения).
Если это возможно, было бы сложно сделать и попытаться извлечь квадратный штифт из круглого отверстия. Однако то, что вы можете легко использовать getTickCount()
, чтобы взять ... ну ... количество тиков до и после операции, а разница между ними - ваша продолжительность. Что вы можете делать с тем, что хотите.
Я, я понял. Благодарю. – Pankaj
Как заявили 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>
У меня есть один проект, который зависит от множества внешних данных, на которые подписан клиент. Я сохраняю все времена обработки для отдельных процессов в структуре сеанса, поэтому я вижу, что это я или одна из сторонних веб-служб, которые вызывают замедление. Если одна из веб-служб боится вниз, я предупреждаю клиента, чтобы они могли решить, хотят ли они выбрать другую услугу.
Спасибо за приведенное выше объяснение. – Pankaj
Спасибо, это было действительно полезно. – Pankaj