Raymond Hettinger <raymond.hettin...@gmail.com> added the comment:
I don't think this should have been done. Conceptually, there is no basis for presuming key-sharing for new empty dicts -- you can't know what they would share with. This patch essentially undoes the entire reason for having a pre-allocated minsize dict. If it were deemed to be the norm that applications typically had huge numbers of empty dicts that were never populated, then the correct solution would be a NULL pointer to the table field (as dicts do). FWIW, the macro benchmarks aren't very informative here because they don't exercise much of this code. I think there is an over-prioritization of small space savings at the expense of the intended use cases for dicts. This patch just forces every dict that gets used to have to convert back from a key-sharing dict and do a memory allocation and memset(0) in the process. The whole point of the minsize dict was to avoid that cost in the common case of small dicts (i.e. passing keyword arguments). ---------- nosy: +rhettinger, tim.peters status: closed -> open _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue30040> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com