[Zope-dev] [Patch] Optimization for development mode
Patrick Phalen
zope@teleo.net
Thu, 30 Mar 2000 23:10:52 -0800
[Brian Lloyd, on Thu, 30 Mar 2000]
:: FYI guys - it looks like getmtime doesn't exist on windows
:: (and possibly other platforms) - think we'll be able to
:: get around that by sniffing the stat() structure though.
Funny, I thought os.path.getmtime() is supposed to be more portable
than the equivalent os.stat()[ST_MTIME].
It is used elsewhere in Zope:
/lib/python/App/special_dtml.py: t=os.path.getmtime(self.raw)
And the stat alternative appears in some contributed Products:
/lib/python/Products/LocalFS/LocalFS.py: t = DateTime(os.stat(path)[stat.ST_MTIME])
/lib/python/Products/ZMirror/ZMirror.py: mtime = os.stat(fpath)[ST_MTIME]
On Wed, Mar 29, 2000 at 07:55:51PM -0700, Shane Hathaway wrote:
> Ever since I started using Zope I thought its management
> interface was a little sluggish. Today I found out why, and
> the correction is very easy. If you are running Zope in
> development mode, especially in Unix, you will notice a
> healthy improvement in responsiveness.
>
> It turns out that because of a small bug, every time a DTML
> file is read from the file system (including management
> pages) it is re-parsed whether the file was modified or not.
> The reason is because the current logic checks not only the
> file modification date but also the file access date, which
> changes every time the file is read.
>
> Open lib/python/App/special_dtml.py in a text editor.
> Change one line (probably line 115) from:
>
> t=os.stat(self.raw)
>
> to:
>
> t=os.path.getmtime(self.raw)