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/2007-September/074555.html below:

[Python-Dev] Removing the GIL (Me, not you!)

[Python-Dev] Removing the GIL (Me, not you!)"Martin v. Löwis" martin at v.loewis.de
Tue Sep 11 17:50:00 CEST 2007
>     It's the interpreter and thread state itself (pystate.h), for the thread
>     state, also _PyThreadState_Current. Then there is the GC state, in
>     particular "generations". There are various caches and counters also.
> 
> 
> Caches seem like they definitely might be a problem. Would you mind
> expanding on this a little? What gets cached and why?

Depends on the Python version what precisely gets cached. Several types
preserve a pool of preallocated objects, to speed up allocation.
Examples are intobject.c (block_list, free_list), frameobject.c
(free_list), listobject.c (free_list), methodobject.c (free_list),
float_object.c (block_list, free_list), classobject.c (free_list).

Plus there are tons of variables caching string objects. From
classobject.c alone: getattrstr, setattrstr, delattrs, docstr,
modstr, namestr, initstr, delstr, reprstr, strstr, hashstr, eqstr,
cmpstr, getitemstr, setitemstr, delitemstr, lenstr, iterstr, nextstr,
getslicestr, setslicestr, delslicestr, __contains__, all arguments
to UNARY, UNARY_FB, BINARY, BINARY_INPLACE (e.g. instance_neg,
instance_or, instance_ior, then cmp_obj, nonzerostr, indexstr.
(admittedly, classobject.c is extreme here).

There are probably more classes which I just forgot.

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