You can always change the script to perform the loop between the
gettickcount() references, or to perform 2nd inside loop to pad the results
a bit.

> I haven't tried running it yet, but this profiling
> code seems suspicious. I don't think CF's
> GetTickCount() function has sufficiently small
> resolution that the execution time of 10 or 20 CF
> statements can be meaningfully measured. My
> recollection was that CF5's GetTickCount was only
> accurate within 10ms or so....

> --- "S. Isaac Dealey" <[EMAIL PROTECTED]> wrote:
>> Here's a rudimentary test case.
>>
>> What's really interresting about this test is that,
>> although the sum total
>> time required to perform 10000  ( or however many )
>> try-catch blocks to
>> accomplish roughly the same thing as the <cfswitch>
>> statements, is about 7-8
>> times as long, the maximum and average times in
>> _both_ cases are identical,
>> regardless of how many iterations are used. Or at
>> least, this has been the
>> case in my testing...
>>
>> Admittedly, this isn't real load testing, it's just
>> a rudimentary time test,
>> so it should be taken with a grain of salt. It also
>> doesn't compare the
>> try-catch to a <cfif> ladder, which might also be a
>> relevant comparison.
>>
>> In any event, here's the code if you'd like to see
>> the times for yourself:
>>
>> <cfparam name="url.iterations" type="numeric"
>> default="10000">
>>
>> <cfset request.times_try = ArrayNew(1)>
>> <cfset request.times_switch = arraynew(1)>
>>
>> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
>> Transitional//EN">
>> <html><head><title>Try-Catch Time
>> Test</title></head><body>
>>
>> <cfloop index="iteration" from="1"
>> to="#url.iterations#">
>>      <cfset starttime = gettickcount()>
>>              <cfset candrive = false>
>>              <cfset candrink = false>
>>              <cfset myage = RandRange(1,35)>
>>
>>              <cfswitch expression="#myage#">
>>                      <cfcase
>> value="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15"
>> delimiters=",">
>>                              <cfset message="this is a tyke">
>>                      </cfcase>
>>                      <cfcase value="16,17,18,19,20" delimiters=",">
>>                              <cfset candrive = true>
>>                              <cfset message="this is a teen">
>>                      </cfcase>
>>                      <cfdefaultcase>
>>                              <cfset candrink = 1>
>>                              <cfset message="this is an adult">
>>                      </cfdefaultcase>
>>              </cfswitch>
>>      <cfset executiontime = gettickcount() - starttime>
>>      <cfset temp =
>> arrayappend(request.times_switch,executiontime)>
>>
>>      <cfset starttime = gettickcount()>
>>              <cfset candrive = false>
>>              <cfset candrink = false>
>>              <cfset myage = RandRange(1,35)>
>>
>>              <cftry>
>>                      <cfif myage lt 16><cfthrow type="tyke"></cfif>
>>                      <cfset candrive = true>
>>
>>                      <cfif myage lt 21><cfthrow type="teen"></cfif>
>>                      <cfset candrink = true>
>>                      <cfset message="this is an adult">
>>
>>                      <cfcatch type="tyke"><cfset message="this is a
>> tyke"></cfcatch>
>>                      <cfcatch type="teen"><cfset message="this is a
>> teen"></cfcatch>
>>              </cftry>
>>      <cfset executiontime = gettickcount() - starttime>
>>      <cfset temp =
>> arrayappend(request.times_try,executiontime)>
>> </cfloop>
>>
>> <cfoutput>
>> Iterations: #arraylen(request.times_switch)# -
>> #arraylen(request.times_try)#
>> <table>
>>
>>
> <tr><td>method</td><td>min</td><td>max</td><td>avg</td><td
> >sum</td></tr>
>>      <tr><td>switch</td>
>>              <td>#ceiling(arraymin(request.times_switch))#</td>
>>              <td>#ceiling(arraymax(request.times_switch))#</td>
>>              <td>#ceiling(arrayavg(request.times_switch))#</td>
>>              <td>#ceiling(arraysum(request.times_switch))#</td>
>>      </tr>
>>      <tr><td>try</td>
>>              <td>#ceiling(arraymin(request.times_try))#</td>
>>              <td>#ceiling(arraymax(request.times_try))#</td>
>>              <td>#ceiling(arrayavg(request.times_try))#</td>
>>              <td>#ceiling(arraysum(request.times_try))#</td>
>>      </tr>
>> </table>
>> </cfoutput>
>> </body>
>>
>>
>> Isaac Dealey
>> Certified Advanced ColdFusion 5 Developer
>>
>> new epoch
>> www.turnkey.to
>> 954-776-0046
>>
>>

> =====
> I-Lin Kuo
> Macromedia CF5 Advanced Developer
> Sun Certified Java 2 Programmer

> __________________________________________________
> Do you Yahoo!?
> Faith Hill - Exclusive Performances, Videos & More
> http://faith.yahoo.com
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ~~~~~~~~~~~|
> Archives:
> http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
> Subscription: http://www.houseoffusion.com/index.cfm?sideb
> ar=lists&body=lists/cf_talk
> FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
> Signup for the Fusion Authority news alert and keep up
> with the latest news in ColdFusion and related topics.
> http://www.fusionauthority.com/signup.cfm


Isaac
Certified Advanced ColdFusion 5 Developer

www.turnkey.to
954-776-0046

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription: http://www.houseoffusion.com/index.cfm?sidebar=lists&body=lists/cf_talk
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Your ad could be here. Monies from ads go to support these lists and provide more 
resources for the community. http://www.fusionauthority.com/ads.cfm

Reply via email to