[Python-Dev] SIGCHECK() in longobject.c
Mark Dickinson
dickinsm at gmail.com
Mon Oct 19 11:28:34 CEST 2009
On Sun, Oct 18, 2009 at 11:46 PM, Antoine Pitrou <solipsis at pitrou.net> wrote:
> Sure, but it's no different than doing, e.g.:
> list(range(100000000)).sort()
>
> (don't try this, it just made by computer slow down to a crawl and I had to kill
> -9 the Python interpreter)
Maybe you were running out of RAM? On a 64-bit machine,
list(range(10**8)) takes over 3 Gb.
For me, x = list(range(10**8)) takes around 6 seconds, and then
x.sort() takes around 2 seconds. This is on a machine with
16 Gb of RAM. (Though I do seem to recall that timsort is
extra fast for already sorted lists: O(n) rather than O(n log n)?)
So I'd say that it *is* different. A million digit integer takes less
than half a megabyte of RAM, so a single operation can be
horribly slow long before memory limitations are reached.
I'd prefer to keep the SIGCHECK unless there's a really
compelling advantage to getting rid of it.
Mark
More information about the Python-Dev
mailing list