[Zodb-checkins] CVS: ZODB3/ZEO/zrpc - trigger.py:1.14.20.1

Tim Peters tim at zope.com
Wed Oct 1 16:12:30 EDT 2003


[zodb-checkins-bounces at zope.org]
> Subject: RE: [Zodb-checkins] CVS: ZODB3/ZEO/zrpc -
> trigger.py:1.14.20.1
>
>
> [Jeremy Hylton]
>>> Modified Files:
>>>       Tag: Zope-2_7-branch
>>> 	trigger.py
>>> Log Message:
>>> Untested, potentially leak-free close() method for Windows.
>
>> I tested this code on Win2k and it didn't cause tests to fail.  I
>> don't know if it fixed the leak, but I expect that it did.
>
> I'm in FB today and don't have a Win98 box.  Here's the original test
> driver:
>
> """
> import ZODB
> from ZODB import DB
> from ZEO import ClientStorage
>
> i = 0
> while 1:
>     storage = ClientStorage.ClientStorage(('localhost', 9992))     db
>     = DB(storage) conn = db.open()
>     root = conn.root()
>     root['key'] = i
>     i += 1
>     get_transaction().commit()
>     print i,
>     conn.close()
>     db.close()
>     storage.close()
> """
>
[Tim]
> ...
> 2) After the patch, the client leaks about 200KB of memory per second,
>    and the server leaks about 100KB/sec, on my otherwise-quiet Win2K
>    box here.  That's pretty dramatic growth given how little the
>    driver does per iteration, and that it only does about 5
>    iterations per second on Win2K.

Here's the scoop after later patches, still on Win2K:  the test program has
run thru about 18,000 iterations now.  The ZEO server has sucked up 8+
minutes of CPU time, and the client program 15+ minutes.  The server VM high
water mark remains under 9MB, and the client under 8MB.  So if any memory
leak remains on either side, it's so small as to be unnoticeable after 18K
connections (now 20K, BTW).  Yippee!




More information about the Zodb-checkins mailing list