[issue13159] _io.FileIO uses a quadratic-time buffer growth algorithm

2011-10-13 Thread Roundup Robot

Roundup Robot devn...@psf.upfronthosting.co.za added the comment:

New changeset d18c80a8c119 by Nadeem Vawda in branch '3.2':
Issue #13159: Replace FileIO's quadratic-time buffer growth algorithm with a 
linear-time one.
http://hg.python.org/cpython/rev/d18c80a8c119

New changeset 4a6709a071d0 by Nadeem Vawda in branch 'default':
Merge #13159: Replace FileIO's quadratic-time buffer growth algorithm with a 
linear-time one.
http://hg.python.org/cpython/rev/4a6709a071d0

--
nosy: +python-dev

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13159
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13159] _io.FileIO uses a quadratic-time buffer growth algorithm

2011-10-13 Thread Roundup Robot

Roundup Robot devn...@psf.upfronthosting.co.za added the comment:

New changeset c1c434e30e06 by Nadeem Vawda in branch '2.7':
Issue #13159: Replace FileIO's quadratic-time buffer growth algorithm with a 
linear-time one.
http://hg.python.org/cpython/rev/c1c434e30e06

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13159
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13159] _io.FileIO uses a quadratic-time buffer growth algorithm

2011-10-13 Thread Antoine Pitrou

Antoine Pitrou pit...@free.fr added the comment:

Thank you :)

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13159
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13159] _io.FileIO uses a quadratic-time buffer growth algorithm

2011-10-13 Thread Nadeem Vawda

Nadeem Vawda nadeem.va...@gmail.com added the comment:

No problem :)

--
assignee:  - nadeem.vawda
resolution:  - fixed
stage: patch review - committed/rejected
status: open - closed

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13159
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13159] _io.FileIO uses a quadratic-time buffer growth algorithm

2011-10-12 Thread Nadeem Vawda

New submission from Nadeem Vawda nadeem.va...@gmail.com:

As mentioned in issue 6715, the buffer growth strategy used by _io.FileIO
has quadratic running time if each reallocation is O(n). The code in
question is new_buffersize() from Modules/_io/fileio.c:

if (currentsize  SMALLCHUNK) {
/* Keep doubling until we reach BIGCHUNK;
   then keep adding BIGCHUNK. */
if (currentsize = BIGCHUNK)
return currentsize + currentsize;
else
return currentsize + BIGCHUNK;
}
return currentsize + SMALLCHUNK;

Is there a reason for this? One possible improvement would be to instead
use the same formula as list.resize() in Objects/listobject.c:

new_allocated = (newsize  3) + (newsize  9 ? 3 : 6);

which has amortized O(n) running time behaviour.

Your thoughts?

--
components: IO
messages: 145403
nosy: benjamin.peterson, nadeem.vawda, pitrou, stutzbach
priority: normal
severity: normal
stage: needs patch
status: open
title: _io.FileIO uses a quadratic-time buffer growth algorithm
type: performance
versions: Python 3.3

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13159
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13159] _io.FileIO uses a quadratic-time buffer growth algorithm

2011-10-12 Thread Nadeem Vawda

Nadeem Vawda nadeem.va...@gmail.com added the comment:

I've attached a patch that makes the suggested change to FileIO, and also
to _bz2.BZ2Compressor/Decompressor (which currently have the same issue).

--
keywords: +patch
Added file: http://bugs.python.org/file23389/buffer-growth.diff

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13159
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13159] _io.FileIO uses a quadratic-time buffer growth algorithm

2011-10-12 Thread Nadeem Vawda

Changes by Nadeem Vawda nadeem.va...@gmail.com:


--
stage: needs patch - patch review

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13159
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13159] _io.FileIO uses a quadratic-time buffer growth algorithm

2011-10-12 Thread STINNER Victor

Changes by STINNER Victor victor.stin...@haypocalc.com:


--
nosy: +haypo

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13159
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13159] _io.FileIO uses a quadratic-time buffer growth algorithm

2011-10-12 Thread Antoine Pitrou

Antoine Pitrou pit...@free.fr added the comment:

The patch looks good to me, thanks.

--
versions: +Python 2.7, Python 3.2

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13159
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com