"High water" Memory fragmentation still a thing?
dieter at handshake.de
Fri Oct 10 08:09:33 CEST 2014
Emile van Sebille <emile at fenx.com> writes:
> On 10/8/2014 10:28 AM,
> bryanjugglercryptographer at yahoo.com.dmarc.invalid wrote:
>> That doesn't mean to tell a human administrator to regularly restart the server. It's programmatic and it's a reasonably simple and well-established design pattern.
> I'd call it more a compensation technique than a design pattern*. You
> know, like rebooting windows routinely. :)
> *) Alternately known as a workaround or kludge.
Well, everything has a price.
Python does not use memory compaction but places many objects on the
heap and therefore, long running processes
usually are subject to memory fragmentation. As a consequence, those
processes need to be restarted from time to time.
Would Python use memory compaction, implementing C extensions would
be much more tedious and error prone and there would be less such
extensions - limiting the domain where Python is used.
One has to choose.
People who do not like the choice of the
"CPython" implementation (no memory compaction) may look at
"Jython" (based on Java, with memory compaction). If they are lucky,
all the extensions they need are available there.
More information about the Python-list