Why is a list loop faster than an array loop?

I’ve always assumed that working with lists was far slower than working with Arrays. It just seems obvious since with an array you have a series of values that are indexed sequentially, whereas with a list you have a string that has to be parsed every time you want to work with it.

I was therefore very surprised to learn that looping over a list is much faster in ColdFusion MX than looping over an array. On average, looping through a 500 item list took one quarter the time required to loop over an array containing the same 500 items. This is certainly counterintuitive and besides, didn’t everyone always say string operations were slow in Java?

After reading the generated Java code I found that when you loop over a list by specifying the list attribute of a cfloop statement, ColdFusion optimizes the code by tokenizing the list only at the outset. If you were to use an indexed loop and listGetAt() each element, then ColdFusion would retokenize the list on each call and you’d start to get serious performance degradation.

So what’s the conclusion? Looping over lists is good, but list operations whenever you’re making more than one call to the list function is bad. At least that my new opinion, subject to change without notice. :-)

Preliminary MAX session sign-up statistics

We received some preliminary statistics on attendees signing up for our MAX sessions. My session, Integrating ColdFusion with Microsoft Office, is ranked number 5 right now for ColdFusion sessions.

I’m really excited about this session since I’ve been given approval to depart from the traditional “this is how you use CFOBJECT” session to do a real comparative analysis of different access methodologies. I’ll review and provide code samples for interacting with Microsoft Office through automation, document properties, HTML, XML, and Jet, including options available for Linux servers and the brand new options for Office 11 users.

The session is available in three different time slots so there’s no excuse to miss it. See you at MAX!

Is Java supported in CFMX?

The question of what is supported Java usage in CFMX came up on a mailing list today. When is Java fully supported and when is it not? Can we expect our applications to continue to work in future versions of ColdFusion if we take full advantage of Java? What about the wonderful ColdFusion internal classes?

Here’s my $0.02…
Continue reading

MSSQL Developer for $42!!!

Microsoft dropped the price for MSSQL Developer edition from $499 to only $49. You can find it at some locations even cheaper. This is a great buy so anyone working on a Windows box has no excuse not to have MSSQL.

It’s also great for people on a production budget. While MSSQL Developer is only for developer use, it does include the client tools. That’s important because MSDE can be used in production but doesn’t include any client tools. You can use MSDE in production and buy MSSQL Developer for the client tools to manage your production box.
Continue reading