120 How is CFML Speed vs Other Languages? (Hint: really fast!), with Brad Wood



120 How is CFML Speed vs Other Languages? (Hint: really fast!), with Brad Wood

120 How is CFML Speed vs Other Languages? (Hint: really fast!), with Brad Wood

Brad Wood talks about “How is CFML speed vs other languages? (Hint: really fast!)” in this episode of ColdFusion Alive Podcast with host Michaela Light.

Show notes
Why compare language performance?
It is freaking awesome is it to see CFML (both Lucee and Adobe) blowing the pants off other popular web frameworks. I think this sort of head-to-head comparison is great information to use when defending CFML as a battle-tested production server. (results and tests below).
Other ways to compare programming languages
Modern development ecosystem
Tools
IDEs
Libraries and frameworks
Modern language
Ease of coding (writing and reading)
Ease of learning
Connection to other systems and APIs
Manufacturer and community there for the long term + support
Ease of hiring
App reliability
Scalability
Security
Fashion / what is hot / new
What are the TechEmpower performance benchmarks that you used in your testing?
The benchmarks have a suite of tests, such as run 20 queries on a page and output some data, and every language and framework implements the same logic in their syntax and style. The tests literally take days to run in full and spin up each combination of language and framework in docker containers where they are hammered with oodles of traffic and then the juicy stats are recorded for sweet graphical comparisons.
Since 2012 in EC2, now in Docker containers. Open source.
The site is basically information overload. There’s just dozens and dozens of combinations of languages, frameworks, databases, web servers, etc– and many of them are crazy fast micro frameworks you’ve never heard of which are pretty cool. You can apply a huge list of filters to try and carve down the list of frameworks to a useful size of equivalent ones.
See results
Not all the test results are the same. Play around with the site to compare your favorite languages and see how they hold up in the simple hello world tests vs the heavy lifting DB tests. I’ve stacked the cards a bit in my selections above, but I think it’s more indicative of a real world web app if we’re honest.
What languages did you compare?
Brad added the following to the site a year or so ago:
Raw Lucee server
Raw Adobe ColdFusion server
ColdBox MVC running on Lucee
ColdBox MVC running on Adobe ColdFusion
All the famous languages: CF, PHP, Python, Go, RoR, Grails etc
What about front ends such as React, Angular, Vue?
What about Java (SpringBoot), WP, dotNot, Cloture
Size of CF Docker image
Doesn’t matter for this test
May matter for clustered Docker solutions with orchestration
How did CFML perform?

Let me be the first to say Brad’s filters are pretty arbitrary. CFML does better on more complex pages with more queries than other languages. That’s because it’s got a little more overhead for a simple Hello World request (we’re talking ms here) but it’s JVM concurrency and datasource connection pooling really shine on a more complex test. As such, the link and screenshot above is for the “Data Updates” test

Languages compared:
Go is very fast. This is no surprise as Go is designed to be as small as possible and even discourages use of frameworks all together. I couldn’t get the filter to only show one of the Go configurations, but you can see it’s the only language that was as fast or faster than CFML in this test!
CFML basically came in second place out of the selected languages and frameworks. Raw CFML is faster than ColdBox as expected but it’s not a massive difference.
Node.js came in slower than both raw CFML and ColdBox MVC
Groovy (Grails) came in slower than both raw CFML and ColdBox MVC
Ktor jasync (Kotlin) came in slower than both raw CFML and ColdBox MVC
Ruby on Rails came in slower than both raw CFML and ColdBox MVC
Laravel (PHP) came in slower than ColdBox MVC which it is equivalent to.
There’s a million PHP frameworks, I picked this one because I know it’s very popular and modern.
Django (Python) came in dead last by a long shot (4x slower than CFML!)
Open source involvement
Star the repo – a like
Watch – a subscribe
Fork / Pull request – bug fixes and enhancements
Do your first pull request cocompetition
Edit/Add docs
CommandBox database migration layer
Wrap up
State of CF Union survey results show that speed is never an issue for modern CF code
neither are security, upgrading or tools

Mentioned in this episode
Brads blog on this How does CFML really perform compared to other languages? – Communities – Ortus Solutions Community
TechPower
if you’d like to see the code and Docker setup, feel free to poke around the repo
Adobe ColdFusion
Lucee
ColdBox
Is CF dead article
State of CF Union survey results
CFCasts
CommandBox database migration layer – talk by Brad
CF most Secure language
TT blog post
Brad blog post