Lightwire versus Coldspring
Dec 30
Though the holidays have been upon us, my deadlines (including the unrealistic ones) stand firm as does my desire to stay strictly OO on my latest ColdFusion project. So far, so good. Now that some major milestones have been reached, I'm able to start testing some of my services beyond the simple unit tests I had conducted up to this point and I found the results troubling.
The more my application ran and the more in-browser testing I conducted, I found that my application response time was slowing down over time. Not dramatically, especially considering I was the only one hitting the application. But it was noticeable and it would certainly be a problem at production time. I began conducting slow-going, manual "process of elimination" tests to see if I could identify the problem. I started by doing a side by side compare of the small script I was running in two versions: with Coldspring for dependency injection or handling dependencies by hand. The latter, in an effort to produce identical circumstances (i.e. dependencies of dependencies would have to be instantiated) took a considerable amount of code! It's no wonder these frameworks are used!
I learned, as you might have guessed, the app was definitely faster without Coldspring. I understand that, it's less overhead. But the difference was very significant, especially in regards to transient objects. So, I switched to Lightwire to see if it made a difference. And wow... it sure did.
Lightwire appears to be a much lighter weight choice if all you need to do is identify your transients and singletons and set their dependencies on instantiation. In doing some research to see if there was a way to get Coldspring to handle transients more effectively, I did read that others have had similar problems that they've chosen to solve with Lightwire as well.