New submission from Marco Sulla <[email protected]>:
I've done a PR that speeds up the vectorcall creation of a dict using keyword
arguments. The PR in practice creates a insertdict_init(), a specialized
version of insertdict. I quote the comment to the function:
Same to insertdict but specialized for inserting without resizing and for dict
that are populated in a loop and was empty before (see the empty arg).
Note that resizing must be done before calling this function. If not
possible, use insertdict(). Furthermore, ma_version_tag is left unchanged, you
have to change it after calling this function (probably at the end of a loop).
This change speeds up the code up to a 30%. Tested with:
python -m timeit -n 2000 --setup "from uuid import uuid4 ; o =
{str(uuid4()).replace('-', '') : str(uuid4()).replace('-', '') for i
in range(10000)}" "dict(**o)"
----------
components: Interpreter Core
messages: 377318
nosy: Marco Sulla, inada.naoki
priority: normal
pull_requests: 21398
severity: normal
status: open
title: Speed up dict vectorcall creation using keywords
versions: Python 3.10
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue41835>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com