[issue26341] Implement free-list for single-digit longs

2016-02-11 Thread Serhiy Storchaka

Serhiy Storchaka added the comment:

This looks as a duplicate of issue24165.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26341] Implement free-list for single-digit longs

2016-02-11 Thread Yury Selivanov

New submission from Yury Selivanov:

The attached patch implements a free-list for single-digit longs.  We already 
have free lists for many fundamental types, such as floats & unicode.

The patch improves performance in micro-benchmarks by 10-20%.  It'll also 
lessen memory fragmentation issues.


== Benchmarks ==

### spectral_norm ###
Min: 0.268018 -> 0.245042: 1.09x faster
Avg: 0.289548 -> 0.257861: 1.12x faster
Significant (t=18.82)
Stddev: 0.01004 -> 0.00640: 1.5680x smaller

-m timeit -s "loops=tuple(range(1000))" "for x in loops: x+x"
with patch: 34.5 usec   without patch: 45.9 usec


== Why only single-digit? ==

I've also a patch that implements free-lists for 1-digit, 2-digits and 3-digits 
longs, and collects statistics on them.  It looks like we only want to optimize 
1-digit longs:

* 2to3 benchmark (the first number is the number of all N-digit longs, the 
second number is the number of longs created via free-list):

===> d1_longs = 142384 124759
===> d2_longs = 6872 6264
===> d3_longs = 2907 2834

* richards:
===> d1_longs = 219630 219033
===> d2_longs = 1455 1096
===> d3_longs = 630 627

* spectral_norm:
===> d1_longs = 133928432 133927838
===> d2_longs = 1471 1113
===> d3_longs = 630 627

--
assignee: yselivanov
components: Interpreter Core
files: long_fl.patch
keywords: patch
messages: 260124
nosy: haypo, mark.dickinson, serhiy.storchaka, yselivanov
priority: normal
severity: normal
stage: patch review
status: open
title: Implement free-list for single-digit longs
type: performance
versions: Python 3.6
Added file: http://bugs.python.org/file41900/long_fl.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26341] Implement free-list for single-digit longs

2016-02-11 Thread Yury Selivanov

Yury Selivanov added the comment:

You're right Serhiy, closing this one.

--
resolution:  -> duplicate
superseder:  -> Free list for single-digits ints

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue26341] Implement free-list for single-digit longs

2016-02-11 Thread Yury Selivanov

Changes by Yury Selivanov :


--
stage: patch review -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com