[Dev] ZODB for object persistence [Was: ZODB is not a Storage Technology]Jeremy Hylton Mon, 11 Nov 2002 13:10:17 -0500
>>>>> "JA" == John Anderson <john@osafoundation.org> writes: JA> My test program for object creation using ZODB4 goes from JA> somewhere around 20,000 objects created per second to 300 per JA> second once you throw in transactions. I'd like to use JA> transactions for undo and resource exaustion recovery. How did you throw in transactions? If, for example, you added a commit after every object creation, I think I'd be happy if you could achieve 300 creations/sec <0.3 wink>. A transaction is a relatively heavyweight operation and object creation is an incredibly lightweight operation. I'm sure transaction commits can be optimized, but it's still going to be a big hit if you use very fine-grained transactions. Do you think that's necessary for you application? I'd also note that important parts of ZODB4, notably the object cache, are still using throw-away code written in Python. There's a reason we haven't released ZODB4 yet. For the Dec. alpha release, we'll have an object cache written in C that should improve performance. If you're looking to benchmark code, ZODB 3.1 will give you more realistic numbers. Jeremy PS My own crude benchmark (creation an object passing two args to __init__) was: classic class 118000 creations/sec new-style class 66700 creations/sec Persistent class 181 create+commit/sec (using FileStorage)
|