Differences between revisions 5 and 6
Revision 5 as of 2008-12-11 07:46:11
Size: 1074
Editor: astound-69-42-4-166
Comment: blurb on dict allocations
Revision 6 as of 2008-12-11 08:10:21
Size: 1164
Editor: astound-69-42-4-166
Comment: lil cleanup
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
==================================
Line 12: Line 13:
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>`_ jbaker & thobe's JavaOne '08 talk: `Jython Implementing Dynamic Language Features For The Java Ecosystem`_
Line 18: Line 19:
dict allocation
~~~~~~~~~~~~~~~
* dict allocation
Line 22: Line 23:
Frame creation
--------------

*
Frame creation
Line 25: Line 27:

.. _`Jython Implementing Dynamic Language Features For The Java Ecosystem`: http://developers.sun.com/learning/javaoneonline/2008/pdf/TS-6039.pdf?cid=925321

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)