Hi, all. I implemented my new idea. (still wip) https://github.com/methane/cpython/pull/3/files
Memory usage when building Python doc with sphinx are: 1) master (shared key) 176MB 2) compact (w/ shared key) 158MB 3) compact (w/o shared key) 166MB 4) compact & interned (new) 160MB Memory usage is close to compact w/ shared key, and more efficient than current. In case of Python benchmark (master vs compact & interned): $ python perf.py -fm ~/local/python-master/bin/python3 ~/local/python-intern/bin/python3 ### 2to3 ### Mem max: 20392.000 -> 16936.000: 1.2041x smaller ### chameleon_v2 ### Mem max: 364604.000 -> 359904.000: 1.0131x smaller ### django_v3 ### Mem max: 26648.000 -> 24948.000: 1.0681x smaller ### fastpickle ### Mem max: 8296.000 -> 8996.000: 1.0844x larger ### fastunpickle ### Mem max: 8332.000 -> 7964.000: 1.0462x smaller ### json_dump_v2 ### Mem max: 10400.000 -> 9972.000: 1.0429x smaller ### json_load ### Mem max: 8088.000 -> 7644.000: 1.0581x smaller ### nbody ### Mem max: 7460.000 -> 7036.000: 1.0603x smaller ### regex_v8 ### Mem max: 12572.000 -> 12520.000: 1.0042x smaller ### tornado_http ### Mem max: 27860.000 -> 26792.000: 1.0399x smaller I'll do more hack in next week to prove my idea. (interned string only vs string only, revive embedded small table or not). If someone interested in, please try my interned-dict branch and report difference of performance and memory usage. https://github.com/methane/cpython/tree/interned-dict (cb0a125c79 passes most tests, except tests using sys.getsizeof()). -- INADA Naoki <songofaca...@gmail.com> _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com