diff options
| author | Xavier Morel <xmo@odoo.com> | 2020-04-03 09:35:08 +0000 |
|---|---|---|
| committer | Xavier Morel <xmo@odoo.com> | 2020-04-03 09:35:08 +0000 |
| commit | 6c4e4981bc4e16a8d3b48f6463606fa1a7b36d3c (patch) | |
| tree | c805e0574255755e0a634ec83cf6d70bd3001a39 /setup/package.dfsrc | |
| parent | 366a7d6115a0817695d4cc64d24139349e6037fd (diff) | |
[IMP] core: remove odoo.tools.safe_eval._get_opcodes
It's not necessary anymore as all supported Python versions implement
get_instructions, and inlining the usage of that is as readable as
calling _get_opcodes.
Also use the subset/superset predicate for validity testing instead of
difference as it's a fair bit faster:
❯ python3.8 -mtimeit -s 's1 = set(range(10)); s2 = set(range(5))' 's2 - s1'
5000000 loops, best of 5: 88.3 nsec per loop
❯ python3.8 -mtimeit -s 's1 = set(range(10)); s2 = set(range(5, 15))' 's2 - s1'
2000000 loops, best of 5: 159 nsec per loop
❯ python3.8 -mtimeit -s 's1 = set(range(10)); s2 = set(range(5))' 's1 >= s2'
5000000 loops, best of 5: 71.1 nsec per loop
❯ python3.8 -mtimeit -s 's1 = set(range(10)); s2 = set(range(5, 15))' 's1 >= s2'
5000000 loops, best of 5: 53.6 nsec per loop
we're paying double in the failure case but that doesn't super duper matter
because we're raising an exception and bailing out, the 24% gain on the
happy path seems more relevant.
closes odoo/odoo#48948
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Diffstat (limited to 'setup/package.dfsrc')
0 files changed, 0 insertions, 0 deletions
