At 3:54 pm -0800 28/2/00, Michel Pelletier wrote:
Aye carumba! - what a lot of information. I'm going to start delving around there and see what happens. Is there any additional documentation available on what the info. means?
Nope.
As an aside (to the list), looking around the ApplicationManager.py reveals something called manage_profile. It looks like the main Zope functions are being profiled here (ie not at the object level). It's interesting, but it does seem to be a resource hog...
Profiling is turned off by default. You're right though, when it's turned on it does slow down Zope considerably. But it shouldn't matter because that isn't documented either.
Thanks for the reply, I get it. "Here be Dragons", fair enough.
I do use caching Martijn, but I must admit that it's been a hit and miss affair.
har har...
I didn't realise what I was typing was a pun... I meant that I have caches set at 1000 rows, 1000 results and 600 seconds on the main ZSQL queries, but I don't have a way of testing to see if it's having any effect (see below),
I'm trying to do as many of my SQL queries in external methods (ironically for the performance), so I may well be losing a lot of the caching performance breakthrough there .... hmmm. I wonder if I could do something like...
There really should be very, very little performance difference between calling ZSQL methods from DTML and from an external method. Have you notice an significant speedup do to this? If so, we should look at that...
-Michel
My methods are more complex than simple ZSQL lookups. I need to do a tree traversal through a database to get the relevant items to display. So I need to do nested SQL queries.The first Zope attempt was ; <dtml-var standard_html_header> <dtml-if child><dtml-var show_html> <dtml-in expr="Actors.SQL.get_children(parent=child)"><dtml-var show_html> <dtml-in expr="Actors.SQL.get_children(parent=child)"><dtml-var show_html> <dtml-in expr="Actors.SQL.get_children(parent=child)"><dtml-var show_html> <dtml-in expr="Actors.SQL.get_children(parent=child)"><dtml-var show_html></dtml-in get_children L4></dtml-in get_children L3></dtml-in get_children L2></dtml-in get_children L1> <dtml-else> <form action='cascade2' method=post> child <input type=text name=child size=10> </form> </dtml-if> <dtml-var standard_html_footer> That is, it's a nested loop of ZSQL methods and show_html is an external method that displays HTML dependant on the contents of a DTML document in the ZODB (this is *so* cool - I can change the look and feel of 'elements' with triviality...) It took about 27 seconds to render a (120k) document. Using a full External Method solution, with calls to DBH.query (and a one-time lookup for all the DTML 'templates' in the ZODB) it took about 2 seconds (it's not completely debugged though! :). So, I'm *not* calling ZSQL methods from an External method, I'm using direct connections to the database using Python libraries. Obviously, I lose a lot of Zope goodies here, but I really need that speedup... Thanks for the thoughts, Tone ------ Dr Tony McDonald, FMCC, Networked Learning Environments Project http://nle.ncl.ac.uk/ The Medical School, Newcastle University Tel: +44 191 222 5888 Fingerprint: 3450 876D FA41 B926 D3DD F8C3 F2D0 C3B9 8B38 18A2