I would argue about a few of your suggestions,

First don't use compare() instead of <cfif foo IS 'bar'> since compare is
case sensitive

You can not do <cftag name="foo"> value=#var#> on any type of strings

Always avoid IIF() because it is up to 4x slower then <cfif> even if it is
nested

Don't lock the request scope, because it is thread safe by design!

Lock application, session, & server scopes

Take Care,

Jordan Clark

----- Original Message -----
From: "Ed Toon" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, August 10, 2000 5:47 AM
Subject: Optimization tips collection


> Hey folks,
>
> Seeing as I was finally forced to change from digest to immediate (damnit
;)
> I thought I'd send out another request for more optimization tips. I'm
> mostly looking for Cold Fusion tips... Things like NT & SQL Server configs
> would only serve to scare me. Although... I wonder if anyone ever made a
> list of things that were wrong with 4.0.1 on Solaris and how to fix
them...
> Anyways, here's my current list of CF knowledge that I force pitiful
> underlings to obey. Hopefully we'll get some kind of compilation going.
>
> Ed Toon.
>
> -----------------------
>
> Use cfscript wherever possible, for as long as possible
>
> Boolean evaluation wherever possible
>
> Scope all the variables that you can
>
> Use cfmodule instead of short hand annotation for custom tags
>
> Use cfinclude instead of cfmodule wherever possible
>
> Use cfquery's instead of cfinserts, etc.
>
> Cache queries that seldom change and are universal to all users of the
site
>
> Use stored procedures for non-cacheable queries
>
> Make sure your queries are return only what you need
>
> Always name rows in queries, instead of select *
>
> <cfset #x# = "#Func(y)#"> is bad
> <cfset x = Func(y)> is good
> <cfscript>x = Func(y);</cfscript> is spiffy keen
>
> Ise functions instead of operators wherever possible, e.g. Find/FindNoCase
> instead of CONTAINS, CompareNoCase instead of "var is 'whatever'
>
> CFHTTP resolveUrl=yes does DNS lookups -- slow
>
> Locale functions (LSFunc) are slower than English-only functions
>
> Cache queries with the same return every time
>
> Prepublish pages that are the same every time
>
> <cftag name="foo" value="#var#"> is slower than <cftag name="foo"
> value=#var#>
>
> Use cfswitch instead of cfif
>
> Use IIF to avoid deeply nested if statements. Avoid IIF otherwise
>
> Structures are referenced, but arrays are copied, so if you're using large
> arrays and you try to do something like LocalCustomerArray =
> DataStore.CustomerArrays[CustomerID] you'll end up copying the entire
array,
> which is ok if you just want the data, but is never gonna change the
> DataStore unless you do DataStore.CustomerArrays[CustomerID] =
> LocalCustomerArray again. think twice before copying big arrays
>
> Arrays are dynamic (and they start at 1!)... thus you can't count on
> myArray[15] continuing to be myArray[15] for very long.
>
> CFLOCK all references to Session variables
>
> CFLOCK all references to Application, Server and Request variables that
> might be altered
> over the life of the [Application,Server,Request]
>
> Consider using <cfsetting enablecfoutputonly="yes"> or automatic
whitespace
> reduction to reduce overall page size. cfsetting is faster if it's only
done
> a few times, but if it ends up getting set fifty times in the course of
> processing one request, you probably want automatic reduction
>
> --------------------------------------------------------------------------
----
> Archives: http://www.mail-archive.com/[email protected]/
> To Unsubscribe visit
http://www.houseoffusion.com/index.cfm?sidebar=lists&body=lists/cf_talk or
send a message to [EMAIL PROTECTED] with 'unsubscribe' in
the body.

------------------------------------------------------------------------------
Archives: http://www.mail-archive.com/[email protected]/
To Unsubscribe visit 
http://www.houseoffusion.com/index.cfm?sidebar=lists&body=lists/cf_talk or send a 
message to [EMAIL PROTECTED] with 'unsubscribe' in the body.

Reply via email to