[Python-Dev] Third milestone of FAT Python
Victor Stinner
victor.stinner at gmail.com
Tue Dec 15 15:29:57 EST 2015
More information about the Python-Dev mailing list
Tue Dec 15 15:29:57 EST 2015
- Previous message (by thread): [Python-Dev] Third milestone of FAT Python
- Next message (by thread): [Python-Dev] Third milestone of FAT Python
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
2015-12-15 12:23 GMT+01:00 Franklin? Lee <leewangzhong+python at gmail.com>: > I was thinking (as an alternative to versioning dicts) about a > dictionary which would be able to return name/value pairs, which would > also be internally used by the dictionary. This would be way less > sensitive to irrelevant changes in the scope dictionary, but cost an > extra pointer to each key. Do you have an estimation of the cost of the "extra pointer"? Impact on memory and CPU. dict is really a very important type for the performance of Python. If you make dict slower, I'm sure that Python overall will be slower. > del scope[name] > assert pair.key is None It looks tricky to keep the dict and the pair objects consistent, especially in term of atomaticity. You will need to keep a reference to the pair object in the dict entry, which will also make the dict larger (use more memory), right? > You won't have to keep looking up keys (unless the name is deleted), and > functions are allowed to change. For inlining, you can detect whether > the function has been redefined by testing the saved pair.value > against the saved function, and go into the slow path if needed (or > recompile the inlining). For builtin functions, I also need to detect when a key is created in the global namespace. How do you handle this case with pairs? > If memory is a real concern, deleted pairs can be weakrefed (and saved > in a second dict?) until they are reused. This way, pairs which aren't > saved by something outside will be removed. Supporting weak references also has a cost on the memory footprint... For FAT Python, not being able to detect quickly when a new key is created is a blocker point. Victor
- Previous message (by thread): [Python-Dev] Third milestone of FAT Python
- Next message (by thread): [Python-Dev] Third milestone of FAT Python
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list