Differences between revisions 1 and 5 (spanning 4 versions)
Revision 1 as of 2008-11-15 02:34:16
Size: 642
Editor: PhilipJenvey
Comment:
Revision 5 as of 2008-12-11 07:46:11
Size: 1074
Editor: astound-69-42-4-166
Comment: blurb on dict allocations
Deletions are marked like this. Additions are marked like this.
Line 12: Line 12:
jbaker & thobe's JavaOne '08 talk: `Jython Implementing Dynamic Language Features For The Java Ecosystem <http://developers.sun.com/learning/javaoneonline/2008/pdf/TS-6039.pdf?cid=925321>`_
Line 14: Line 16:
Our algorithms are not always the problem, sometimes it's memory allocations that slow you down Our algorithms are not always the problem, sometimes it's memory {de}allocations that slow you down

dict allocation
~~~~~~~~~~~~~~~
PyStringMap/PyDictionary pay a penalty on allocation now that they're backed by ConcurrentHashMap. We could probably tweak the ConcurrentHashMap initialCapacity, concurrentLevel to reduce this cost

Performance Enhancements Resources

Jython benchmarks (from PyPy's suite): http://freya.cs.uiuc.edu/~njriley/benchmark.html

Benchmark plots (currently broken): http://freya.cs.uiuc.edu/~njriley/plots.html

Ideas

jbaker & thobe's JavaOne '08 talk: Jython Implementing Dynamic Language Features For The Java Ecosystem

GC Expense

Our algorithms are not always the problem, sometimes it's memory {de}allocations that slow you down

dict allocation

PyStringMap/PyDictionary pay a penalty on allocation now that they're backed by ConcurrentHashMap. We could probably tweak the ConcurrentHashMap initialCapacity, concurrentLevel to reduce this cost

Frame creation

Frames are allocated for every Python method call, which is a GC expense. CPython (and JRuby?) recycle frame objects. Reducing the number of fields on the frame can also help (but this likely isn't possible)

PerformanceEnhancements (last edited 2009-01-26 05:40:07 by c-98-212-140-18)