Bevor ich alles versuchte, dachte ich sofort, dass Literale schneller wären, da Sie alles, was Sie zur Laufzeit brauchen, erstellen und keine Zeit mit der Erstellung von Variablen verschwenden müssen, dann Funktionen aufrufen und alles anhängen.
Ich schrieb dann einen kleinen Test, die ein Diagramm mit den Ergebnissen. Du hast mich dort gespannt :-)
Die Ergebnisse beweisen, dass ich Recht hatte, wie die Grafik, die eine Staffelung Differenz zeigt, wie Sie sehen können: alt text http://i44.tinypic.com/jiz8lw.jpg
Aber denken Sie daran, dass, obwohl man springen und mit wörtlichen Notation gehen würde, Ich denke, es ist wichtig, sich daran zu erinnern, dass die wörtliche Notation umständlich sein kann und die meiste Zeit mehr verwirren wird.
Selbstverständlich, wenn Sie eine Seite entwickeln, die wirklich den Geschwindigkeitsschub braucht, wörtliche Schreibweise ist das, was Sie suchen, aber bewusst sein, dass manchmal auf CF8, wird es ein seltsames Verhalten produzieren.
Nur du die Art von Tests zu zeigen, dass ich laufen:
<cfset aLiterals = arrayNew(1) />
<cfset aDirect = arrayNew(1) />
<cfsilent>
<cfloop from="1" to="10000" index="mm">
<!--- LITERAL --->
<!--- start timer --->
<cfset start = getTickcount() />
<cfloop from="1" to="1000" index="ii">
<cfset user = {Fname = "MyFirstnam", Lname = "MyLastName", titles = ['Mr','Dr']} />
</cfloop>
<!--- end timer --->
<cfset end = getTickCount()>
<!--- Display total time --->
<cfset total = end-start>
<cfset arrayAppend(aLiterals,total) />
<!--- DIRECT --->
<!--- start timer --->
<cfset start1 = getTickcount() />
<cfloop from="1" to="1000" index="jj">
<cfset user = {} />
<cfset user.Fname = "MyFirstnam" />
<cfset user.Lname = "MyLastName" />
<cfset user.titles = [] />
<cfset ArrayAppend(user.titles,'Mr') />
<cfset ArrayAppend(user.titles,'Dr.') />
</cfloop>
<!--- end timer --->
<cfset end1 = getTickCount()>
<!--- Display total time --->
<cfset total1 = end1-start1>
<cfset arrayAppend(aDirect,total1) />
</cfloop>
</cfsilent>
<!--- The cfchart --->
<cfchart format="png" xaxistitle="function" yaxistitle="Loading Time (in secs.)">
<cfchartseries type="bar" serieslabel="literal">
<cfchartdata item="literal" value="#arrayAvg(aLiterals)#">
</cfchartseries>
<cfchartseries type="bar" serieslabel="direct">
<cfchartdata item="direct" value="#arrayAvg(aDirect)#">
</cfchartseries>
</cfchart>
Hope this Ihnen hilft.
Großartig! Genau das, was ich gesucht habe. Vielen Dank. –
Hinweis für Interessierte: für Railo 3.1.2 ist der Unterschied etwas kleiner, aber immer noch signifikant. – Sergii
Sie vergleichen Äpfel nicht mit Äpfeln. Versuchen Sie vielleicht in der zweiten Schleife, die Notation für assoziative Arrays zu verwenden, und führen Sie dann den Leistungstest erneut aus. ZB: ' ' –
yfeldblum