2013-05-15 2 views
0

ColdFusion 9에서 cfwheels 응용 프로그램을 실행하고 cfhweels의 기본 디버그 변수를 얻어 db 테이블에 저장해야합니다.CFWheels 'request.wheels.execution'구조체 덤프 문제

컨트롤러, 동작, 요청의 실행 시간이있는 구조체를 반환하는 #request.wheels.execution#을 얻으려고합니다. 구조체를 덤프 할 때 몇 백만 밀리 초가 실행 시간으로 표시되고 화면 하단의 정확한 코드가 올바른 시간 인 몇 백 밀리 초를 보여줍니다.

이 숫자가 디버그 섹션에 표시된 숫자로 어떻게 변환되는지 알고 계십니까?

이것은 내 화면의 아래쪽에 실행 시간을 출력하는 cfwheels에서 직접 가져온 코드입니다. 그러나 코드를 분리하면 숫자가 모두 엉망이됩니다. 가 요청하는 동안 다른 시간에 getTickCount() 호출로

<cfif request.wheels.execution.total GT 0> 
    (<cfset loc.keys = StructSort(request.wheels.execution, "numeric", "desc")> 
    <cfset loc.firstDone = false> 

     <cfloop from="1" to="#arrayLen(loc.keys)#" index="loc.i"> 
      <cfset loc.key = loc.keys[loc.i]> 
      <cfif loc.key IS NOT "total" AND request.wheels.execution[loc.key] GT 0> 
       <cfif loc.firstDone> 
        , 
       </cfif> 
        #LCase(loc.key)# ~#request.wheels.execution[loc.key]#ms<cfset loc.firstDone = true> 
      </cfif> 
     </cfloop>) 
    </cfif> 

답변

0

디버그 출력에보고있는 값은 프레임 워크에 의해 기록 밀리 초 단위로 차이가 있습니다.

당신은 디자인 모드에서 다시로드 및 레이아웃보기의 상단에이를 추가하여 데모 할 수 있습니다보기의 마지막 라인으로,

<cfset ticks = getTickCount() /> 

그런 다음이 추가 :

<cfoutput> 
this view took #getTickCount()-ticks# milliseconds to process. 
</cfoutput>