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?sidebar=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

Reply via email to