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