Прежде чем что-то попробовать, я сразу подумал, что литералы будут быстрее, поскольку вы создаете все, что вам нужно во время выполнения, и вам не нужно тратить время на создание переменных, затем вызывать функции для добавления и все такое.
Затем я написал небольшой тест, который выдает диаграмму с результатами. Вы мне здесь любопытно: -)
Результаты подтверждают, что я был прав, поскольку график показывает ошеломляющую разницу, как вы можете видеть:
альтернативный текст http://i44.tinypic.com/jiz8lw.jpg
Но помните, что хотя можно прыгать и идти с буквенной нотацией, я думаю, что важно помнить, что буквальная нотация может быть неуклюжей, и в большинстве случаев она запутает больше.
Очевидно, что если вы разрабатываете страницу, которая действительно нуждается в повышении скорости, вам нужна буквальная нотация, но имейте в виду, что иногда на CF8 это будет вести себя странно.
Просто чтобы показать вам, какие тесты я запускаю:
<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>
Надеюсь, это поможет вам.