Substantial performance gains for PyPy.
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
Showing
Please register or sign in to comment