On 07/19/2010 10:09 AM, Dietrich Streifert wrote: > I think most of the performance penalty comes from the DBI-handles which > are not kept open between the requests. Every instance opens two > DBI-handles which are used frequently during runmodes.
You really should benchmark it to see where the time is spent. "I think" is a bad way to go about performance improvements :) I'm almost always surprised to find out what my real bottlenecks are. Having said that, DB handles may or may not be real problems. MySQL for example can create new DB handles quickly and with very little overhead. Oracle on the other hand is very expensive. If you do find (Devel::NYTProf, hint, hint :) that you application would benefit from persistent DB handles take a look at DBIx::Connector. It handles that for you and would fix the problem of stale DB handles that people usually encounter when they try to do it themselves. > There are also some big hashes being initialised Can you move this to compile time and initialize them at the class level? > as well as more than 50 > runmodes being setup each time. A hash of 50 items is almost negligible in the time it takes to initialize. > Additionally there is a reopen of STDERR > into a file in cgiapp_init which is called on every new instance but > only once if the instance is reused. I don't know how much of a speed hit that would be but I doubt it's much. Again, profile, profile, profile and you'll most likely be surprised where your real bottlenecks are. -- Michael Peters Plus Three, LP ##### CGI::Application community mailing list ################ ## ## ## To unsubscribe, or change your message delivery options, ## ## visit: http://www.erlbaum.net/mailman/listinfo/cgiapp ## ## ## ## Web archive: http://www.erlbaum.net/pipermail/cgiapp/ ## ## Wiki: http://cgiapp.erlbaum.net/ ## ## ## ################################################################
