A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2010-December/106387.html below:

[Python-Dev] gc ideas -- sparse memory

[Python-Dev] gc ideas -- sparse memory"Martin v. Löwis" martin at v.loewis.de
Sat Dec 4 00:15:48 CET 2010
Am 03.12.2010 23:55, schrieb Dima Tisnek:
> How hard or reasonable would it be to free memory pages on OS level?

Very easy. Python already does that.

> [pcmiiw] Gabage collection within a generation involves moving live
> objects to compact the generation storage. This separates the memory
> region into 2 parts "live" and "cleared", the pointer to the beginning
> of the "cleared" part is where next allocation is going to happen.

I think you are talking about copying collectors here. This is not how
Python's garbage collection works.

> When this is done, does Python gc move the objects preserving order or
> does it try to populate garbaged slot with some live object
> disregarding order? Earlier case is more applicable, but latter case
> is a target for below too.

(C)Python's garbage collector is not moving objects at all.

> If we were to look at memory regions from the OS point of view, they
> are allocated as pages (or possibly as hugetlb pages). So if we are to
> compact something like this [LL__][_L__][____][L_LL][LFFF]  where []
> is a page, L is live object and _ is garbage and F is free memory,
> would it not make more sense to tell OS that [____] is not needed
> anymore, and not move some of the consequtive [L_LL][LFFF] at all, or
> at least not move those objects as far down the memory region?

See above. Python does no moving of objects whatsoever.

Regards,
Martin
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4