[Zodb-checkins] CVS: ZODB3/ZEO - simul.py:1.12.8.2.18.12
Tim Peters
cvs-admin at zope.org
Thu Dec 4 22:29:15 EST 2003
Update of /cvs-repository/ZODB3/ZEO
In directory cvs.zope.org:/tmp/cvs-serv9804/ZEO
Modified Files:
Tag: Zope-2_6-branch
simul.py
Log Message:
Woo hoo! Thor's hit rate zooms from 27.2% to 43.8% with a 50MB cache,
and from 55.4% to 68.2% with a 100MB cache, all by throwing away
code <wink>. The only change is giving all new objects the same
worth (0). It *was* giving new objects a worth roughly equal to the
base 2 logarithm of their size, which is really an insane thing to do
given the object size distribution ZEO sees.
=== ZODB3/ZEO/simul.py 1.12.8.2.18.11 => 1.12.8.2.18.12 ===
--- ZODB3/ZEO/simul.py:1.12.8.2.18.11 Thu Dec 4 21:43:55 2003
+++ ZODB3/ZEO/simul.py Thu Dec 4 22:29:14 2003
@@ -1566,20 +1566,9 @@
self.currentsize += object.size
object.linkbefore(self.currentobj)
- worth = object.worth
- if worth is None:
- # Give new object an intial worth roughly equal to the log
- # (base 2) of its size. The intuition is that larger objects
- # are more expensive to fetch over the network, so are worth
- # more (at least at first).
- worth = 0
- targetsize = 1
- while object.size > targetsize:
- worth += 1
- targetsize <<= 1
- object.worth = worth
-
- self.worthsets[worth].add(object)
+ if object.worth is None:
+ object.worth = 0
+ self.worthsets[object.worth].add(object)
# Decrease the worth of the current object, and advance the
# current object.
More information about the Zodb-checkins
mailing list