Your right, I was way to quick.... The improved test is attached to this email..

I recreated the test, any remarks hints etc. are welcome - I feel I now also got a 
good benchmarking tool ;-))
My results where as following, and like you said there is no consistency in it 
whatsoever, so I guess the answer is "CF doesn't care, and Taco you were nuts even 
caring one tiny bit!"....
Test 1 - 

Function 41 Milliseconds 
Function 40 Milliseconds 
Function 80 Milliseconds 
Function 20 Milliseconds 
Function 30 Milliseconds 
Function 110 Milliseconds 

Test 2 - 

Function 40 Milliseconds 
Function 40 Milliseconds 
Function 70 Milliseconds 
Function 30 Milliseconds 
Function 30 Milliseconds 
Function 180 Milliseconds 

Test 3 - 

Function 40 Milliseconds 
Function 130 Milliseconds 
Function 200 Milliseconds 
Function 20 Milliseconds 
Function 211 Milliseconds 
Function 60 Milliseconds 

Test 4 - 

Function 40 Milliseconds 
Function 100 Milliseconds 
Function 170 Milliseconds 
Function 180 Milliseconds 
Function 30 Milliseconds 
Function 181 Milliseconds 

Test 5 - 

Function 40 Milliseconds 
Function 40 Milliseconds 
Function 131 Milliseconds 
Function 20 Milliseconds 
Function 30 Milliseconds 
Function 180 Milliseconds 

Test 6 - 

Function 30 Milliseconds 
Function 50 Milliseconds 
Function 131 Milliseconds 
Function 20 Milliseconds 
Function 30 Milliseconds 
Function 50 Milliseconds 

Test 7 - 

Function 30 Milliseconds 
Function 50 Milliseconds 
Function 651 Milliseconds 
Function 20 Milliseconds 
Function 30 Milliseconds 
Function 60 Milliseconds 

Test 8 - 

Function 30 Milliseconds 
Function 50 Milliseconds 
Function 90 Milliseconds 
Function 20 Milliseconds 
Function 30 Milliseconds 
Function 60 Milliseconds 

Test 9 - 

Function 30 Milliseconds 
Function 50 Milliseconds 
Function 70 Milliseconds 
Function 30 Milliseconds 
Function 30 Milliseconds 
Function 60 Milliseconds 

Test 10 - 

Function 30 Milliseconds 
Function 50 Milliseconds 
Function 70 Milliseconds 
Function 30 Milliseconds 
Function 30 Milliseconds 
Function 60 Milliseconds 

Totals


Function 1 10 Tests - 351 Milliseconds 
Function 2 10 Tests - 600 Milliseconds 
Function 3 10 Tests - 1663 Milliseconds 
Function 4 10 Tests - 390 Milliseconds 
Function 5 10 Tests - 481 Milliseconds 
Function 6 10 Tests - 1001 Milliseconds 


<cfparam name="url.testCount" default="10">
<cfparam name="functionCount" default="6">

<cfapplication name="appTest" 
        clientmanagement="no" 
        sessionmanagement="yes" 
        setclientcookies="yes" 
        setdomaincookies="no" 
        sessiontimeout="#createTimeSpan(0, 0, 30, 0)#">

<cfscript>
qTest = queryNew("id, test");
for ( i = 0; variables.i LTE 2000; i = variables.i + 1 )
{
        queryAddRow(variables.qTest);
        querySetCell(variables.qTest, "id", variables.i);
        querySetCell(variables.qTest, "test", "Test " & variables.i);
}

if ( NOT structKeyExists(session, "test") )
{
        session.test = structNew();
        session.test["count"] = 0;
}

// increment test count
session.test["count"] = session.test["count"] + 1;

session.test["test" & session.test["count"] + 1] = structNew();
</cfscript>

<cfoutput>

<cfif session.test["count"] GT url.testCount>

        <cfloop from="1" to="#url.testCount#" index="i">
                <p>Test #variables.i# - 
                <ul>
                        <cfloop from="1" to="#variables.functionCount#" index="i2">
                        <cfparam name="function#variables.i2#" default="0">
                        <li>Function #session.test["test" & variables.i]["function" & 
variables.i2]# Milliseconds</li>
                        <cfset setVariable("function" & variables.i2, 
evaluate("function" & variables.i2) + session.test["test" & variables.i]["function" & 
variables.i2])>
                        </cfloop>
                </ul></p>               
        </cfloop>
        <p>Totals</p>
        <p>
        <cfloop from="1" to="#variables.functionCount#" index="i2">
                <li>Function #variables.i2# #url.testCount# Tests - 
#variables["function" & variables.i2]# Milliseconds</li>
        </cfloop></p>
        <cfset structDelete(session, "test")>

<cfelse>

        <!--- specify no scope or queryname--->
        <cfset tickCount = getTickCount()>
        <p>
        <cfloop query="qTest">
        <cfset a="#id# #test#<br/>"/>
        #variables.a#
        </cfloop></p>
        <cfset session.test["test" & session.test["count"]]["function1"] = 
getTickCount() - variables.tickCount>
        <p>#getTickCount() - variables.tickCount#</p>
        
        <!--- specify only queryname --->
        <cfset tickCount = getTickCount()>
        <p>
        <cfloop query="qTest">
        <cfset a="#qTest.id# #qTest.test#<br/>"/>
        #variables.a#
        </cfloop></p>
        <cfset session.test["test" & session.test["count"]]["function2"] = 
getTickCount() - variables.tickCount>
        <p>#getTickCount() - variables.tickCount#</p>
        
        <!--- specify scope and queryname --->
        <cfset tickCount = getTickCount()>
        <p>
        <cfloop query="qTest">
        <cfset a="#variables.qTest.id# #variables.qTest.test#<br/>"/>
        #variables.a#
        </cfloop></p>
        <cfset session.test["test" & session.test["count"]]["function3"] = 
getTickCount() - variables.tickCount>
        <p>#getTickCount() - variables.tickCount#</p>
        
        
        
        <!--- specify no scope or queryname--->
        <cfset tickCount = getTickCount()>
        <cfloop query="qTest">
        <cfset a="#id# #test#<br/>"/>
        </cfloop></p>
        <cfset session.test["test" & session.test["count"]]["function4"] = 
getTickCount() - variables.tickCount>
        
        <!--- specify only queryname --->
        <cfset tickCount = getTickCount()>
        <cfloop query="qTest">
        <cfset a="#qTest.id# #qTest.test#<br/>"/>
        </cfloop></p>
        <cfset session.test["test" & session.test["count"]]["function5"] = 
getTickCount() - variables.tickCount>
        
        <!--- specify scope and queryname --->
        <cfset tickCount = getTickCount()>
        <cfloop query="qTest">
        <cfset a="#variables.qTest.id# #variables.qTest.test#<br/>"/>
        </cfloop></p>
        <cfset session.test["test" & session.test["count"]]["function6"] = 
getTickCount() - variables.tickCount>

        <script>
        window.location.reload();
        </script>

</cfif>
</cfoutput>

---
You are currently subscribed to cfaussie as: [EMAIL PROTECTED]
To unsubscribe send a blank email to [EMAIL PROTECTED]

MXDU2004 + Macromedia DevCon AsiaPac + Sydney, Australia
http://www.mxdu.com/ + 24-25 February, 2004

Reply via email to