You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mitogen/tests/bench
Alex Willmer 0e5f47f145 mitogen: Refactor scan_code_imports() as mitogen.imports.codeobj_imports()
This replaces `mitogen.master.scan_code_imports()` with
`mitogen.imports.codeobj_imports()`. The Python 3.x implementation now uses
`str.find()`, relying on Python >= 3.6 "widecode" format. Behaviour and
semantics should be unchanged. Now implementations are approx
- 1.5 x faster on Python 2.x
- 2 - 3 x faster on Python 3.x

Before
```console
$ ./tests/bench/scan_code
scan_code_imports python2.7  100 loops, best of 3: 3.19 msec per loop
scan_code_imports python3.9  500 loops, best of 5: 685 usec per loop
scan_code_imports python3.10  500 loops, best of 5: 727 usec per loop
scan_code_imports python3.11  500 loops, best of 5: 601 usec per loop
scan_code_imports python3.12  500 loops, best of 5: 609 usec per loop
scan_code_imports python3.13  500 loops, best of 5: 586 usec per loop
```

After
```console
codeobj_imports python2.7  1000 loops, best of 3: 1.98 msec per loop
codeobj_imports python3.9  1000 loops, best of 5: 302 usec per loop
codeobj_imports python3.10  1000 loops, best of 5: 297 usec per loop
codeobj_imports python3.11  1000 loops, best of 5: 243 usec per loop
codeobj_imports python3.12  1000 loops, best of 5: 278 usec per loop
codeobj_imports python3.13  1000 loops, best of 5: 259 usec per loop
```
```console
$ uname -a
Darwin kintha 24.6.0 Darwin Kernel Version 24.6.0: Mon Jul 14 11:30:29 PDT
2025; root:xnu-11417.140.69~1/RELEASE_ARM64_T6000 arm64
```
4 months ago
..
data tests: Add scan_code_imports benchmark 4 months ago
README.md tests: import a bunch more random unchecked in pieces. 7 years ago
fork.py tests: Fix lingering Python 2 isms 4 years ago
large_messages.py Remove unused module imports 4 years ago
latch_roundtrip.py Remove unused module imports 4 years ago
linux_record_cpu_net.sh issue #505: docs: add new detail graph for one scenario. 7 years ago
local.py Remove unused module imports 4 years ago
megatime.py Remove unused module imports 4 years ago
roundtrip.py Remove unused module imports 4 years ago
scan_code mitogen: Refactor scan_code_imports() as mitogen.imports.codeobj_imports() 4 months ago
service.py Remove unused module imports 4 years ago
ssh-roundtrip.py Remove unused module imports 4 years ago
throughput.py Remove unused module imports 4 years ago

README.md

tests/bench/

Various manually executed scripts to aid benchmarking, or trigger old performance problems.