I turned on AppStats to try to get a sense of how to optimize my
prototype application, and I'm seeing something problematic.

It appears that OpenBD is doing a memcache/datastore get for each cfm
or cfc in the execution stack.

I guess I understand why that might be happening, but its a serious
performance issue in that each "file" takes minimum 30-40ms.

In any typical CF application of any appreciable complexity, you're
going to have a dozen or two (or more) files in the stack.  It appears
to do this for a cfc's full inheritance stack as well, so if you've
got a couple CFCs that have, maybe, 2 parent layers of inheritance, to
load those 2 cfcs, you're actually doing 6 of these memcache/datastore
loads at 40ms each.

I've turned on "trusted cache" and it still seems to do this for every
request.  I've also turned off debugging, etc.

So, my FW/1 App that calls a single controller method, a single view,
and a single layout, and a few service CFC's (that put and get a
single CFC to the datastore) takes about 1200ms which is mostly the
memcache/datastore accesses for the actual .cfm files.

So, my basic question is this:

Is it possible to prevent this behavior, or at least to mitigate it
through some configuration?  Or is this just totally inherent in the
way OpenBD (or any other CF engine) works?

Could I 'pre-compile' stuff so that this doesn't happen?

If not, this is going to dictate an interesting application
development strategy: put everything in the application.cfc.

-- 
Open BlueDragon Public Mailing List
 http://www.openbluedragon.org/   http://twitter.com/OpenBlueDragon
 mailing list - http://groups.google.com/group/openbd?hl=en

 !! save a network - please trim replies before posting !!

Reply via email to