Hey all,
I just spoke to Doug and got the OK to commit a bunch of changes to
Reactor I've made. There should be zero API changes - I've been
working on some under-the-hood performance increases.
There's not likely to be much of a performance difference for
development or light-load production, but we've made some dramatic
improvements under heavy load.
Notes on details follow:
All tests = 100 simult threads, 20 requests per thread, 1000ms delay
between requests, 10 second ramp-up against an unmodified ReactorBlog
database on MSSQL
Test: getcategory.cfm:
<cfset category = application.reactor.createrecord("category") >
<cfset category.load(categoryId = 0) />
Test: listcategory.cfm:
<cfset category = application.reactor.creategateway("category") >
<cfset category.getall() />
Before any changes
---------------------------------------------------------------
getcategory.cfm: 4948ms avg
listcategory.cfm: 141
After S. Corfield's reactor.query.query pooling
---------------------------------------------------------------
getcategory.cfm: 4933
listcategory.cfm: 86
After jRinehart's reactor.query.object pooling
---------------------------------------------------------------
getcategory.cfm: 4942
listcategory.cfm: 14
Shared instance of Convention (jRinehart)
---------------------------------------------------------------
getcategory.cfm: 4861
listcategory.cfm: 16
Removed unnecessary createUUID() in abstractObject (jRinehart)
---------------------------------------------------------------
getcategory.cfm: 722
listcategory.cfm: 14
I've also cleaned out a bunch of usages of isDefined(), replacing with
structKeyExists() or arrayLen(arguments) where necessary.
Please report anything that breaks to this list.
-Joe
--
Get Glued!
The Model-Glue ColdFusion Framework
http://www.model-glue.com
-- Reactor for ColdFusion Mailing List -- [email protected]
-- Archives at http://www.mail-archive.com/reactor%40doughughes.net/