- 19 May, 2015 23 commits
-
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
Remove aliasing of PickleCache's target_size/cache_size; just use cache_size as specified in the interface.
-
Jason Madden authored
Replace all remaining uses of 'self.__X' in persistence.py with _OGA/OSA for consistency; also avoid some duplicate calls through __getattribute__ which were more obvious in the OGA form.
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
Remove superflous comment about interning of unicode dict keys on Python2. The existing behaviour matches the C implementation.
-
Jason Madden authored
Use _p_deactivate unconditionally in test_del_jar_of_inactive_object. I'm not sure why I was reaching into the internals of the Python implementation.
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
Remove mention of Jython, although not the supporting bits. Hopefully tox/virtualenv/pip come together soon to allow official testing and mention.
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
Add an explicit assertion that the status of an object is no longer a ghost after accessing _p_mtime...that the value of _p_mtime is set is implicitly confiramtion of this because it gets set during loading, but explicit is better than implicit.
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
- 06 May, 2015 1 commit
-
-
Jason Madden authored
Make the Python impl match the C impl by automatically unghostifying the object when _p_mtime is accessed.
-
- 05 May, 2015 2 commits
-
-
Jason Madden authored
Merge branch 'zodb-on-pypy-support' of https://github.com/NextThought/persistent into zodb-on-pypy-support
-
Jason Madden authored
Add a test checking the non-cooperative behaviour of Persistent.__getattribute__ in both C and Python.
-
- 04 May, 2015 1 commit
-
-
Jason Madden authored
Another CPython/pure-python difference is the handling of interning instance keys. C has always let non-str values through, but the python implementation raised a TypeError. Correct that and add a test case.
-
- 01 May, 2015 1 commit
-
-
Jason Madden authored
-
- 28 Apr, 2015 5 commits
-
-
Jason Madden authored
-
Jason Madden authored
Remove the unused __ring_handle, and tweak move_to_head to avoid recursive call to __getattribute__ based on benchmarks.
-
Jason Madden authored
-
Jason Madden authored
Add a non-CFFI implementation of the Ring abstraction based on the deque work, and add a tox environment to test it. Only one ZODB test fails.
-
Jason Madden authored
Performance is way up again, beating CPython on half of the tests: "Transaction", mysql "Add 3000 Objects", 8259 "Update 3000 Objects", 9454 "Read 3000 Warm Objects", 5460 "Read 3000 Cold Objects", 5454 "Read 3000 Hot Objects", 24943 "Read 3000 Steamin' Objects", 1099616 Still needs some GC work to get all the ZODB tests to pass like they do under zopefoundation/persistent#20
-
- 27 Apr, 2015 2 commits
-
-
Jason Madden authored
-
Jason Madden authored
First, eliminate the use of the RingWrapper object and always delete by index. It was only necessary to allow use of ring.remove(). This had some performance impact, but mostly saves memory. Second, eliminate the use of `enumerate` in the hot mru() path. This was the big performance win. Current results: ** concurrency=2 ** "Transaction", mysql before "Add 3000 Objects", 7424 5486 "Update 3000 Objects", 5699 4141 "Read 3000 Warm Objects", 4571 4003 "Read 3000 Cold Objects", 4932 4204 "Read 3000 Hot Objects", 17295 10416 "Read 3000 Steamin' Objects", 346331 168983
-
- 24 Apr, 2015 1 commit
-
-
Jason Madden authored
Under PyPy, CPython, and Jython, collections.dequeue is a built-in type. Using it doubles PyPy's performance under `zodbshootout` (previously, picklecache.mru() was the biggest bottleneck).
-
- 22 Apr, 2015 1 commit
-
-
Jason Madden authored
Some very minor tweaks to avoid going through the __getattribute__ path so much have large consequences for `zodbshootout`: Results show objects written or read per second. Best of 3. (before/after on pypy2.5.1) "Transaction", before after cpython2.7 "Add 3000 Objects", 534 2340 11711 "Update 3000 Objects", 330 3035 11333 "Read 3000 Warm Objects", 1168 1941 9086 "Read 3000 Cold Objects", 1647 4161 9484 "Read 3000 Hot Objects", 2647 11086 45220 "Read 3000 Steamin' Objects", 30523 108138 5321032
-
- 14 Apr, 2015 2 commits
-
-
Jason Madden authored
-
Jason Madden authored
-
- 13 Apr, 2015 1 commit
-
-
Jason Madden authored
-