Commit bd94bcb
authored
Try simple-minded call expression cache (#19505)
This gives a modest 1% improvement on self-check (compiled), but it
gives almost 40% on `mypy -c "import colour"`. Some comments:
* I only cache `CallExpr`, `ListExpr`, and `TupleExpr`, this is not very
principled, I found this as a best balance between rare cases like
`colour`, and more common cases like self-check.
* Caching is fragile within lambdas, so I simply disable it, it rarely
matters anyway.
* I cache both messages and the type map, surprisingly the latter only
affects couple test cases, but I still do this generally for peace of
mind.
* It looks like there are only three things that require cache
invalidation: binder, partial types, and deferrals.
In general, this is a bit scary (as this a major change), but also perf
improvements for slow libraries are very tempting.1 parent e40c36c commit bd94bcb
File tree
6 files changed
+84
-5
lines changed- mypy
- test-data/unit
- fixtures
6 files changed
+84
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
138 | 138 | | |
139 | 139 | | |
140 | 140 | | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
141 | 145 | | |
142 | 146 | | |
143 | 147 | | |
| |||
158 | 162 | | |
159 | 163 | | |
160 | 164 | | |
| 165 | + | |
161 | 166 | | |
162 | 167 | | |
163 | 168 | | |
| |||
185 | 190 | | |
186 | 191 | | |
187 | 192 | | |
| 193 | + | |
188 | 194 | | |
189 | 195 | | |
190 | 196 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
449 | 449 | | |
450 | 450 | | |
451 | 451 | | |
452 | | - | |
453 | 452 | | |
454 | 453 | | |
455 | 454 | | |
| |||
3024 | 3023 | | |
3025 | 3024 | | |
3026 | 3025 | | |
| 3026 | + | |
| 3027 | + | |
3027 | 3028 | | |
3028 | 3029 | | |
3029 | 3030 | | |
| |||
4005 | 4006 | | |
4006 | 4007 | | |
4007 | 4008 | | |
4008 | | - | |
| 4009 | + | |
4009 | 4010 | | |
4010 | 4011 | | |
4011 | 4012 | | |
| |||
4664 | 4665 | | |
4665 | 4666 | | |
4666 | 4667 | | |
| 4668 | + | |
| 4669 | + | |
4667 | 4670 | | |
4668 | 4671 | | |
4669 | 4672 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| |||
355 | 355 | | |
356 | 356 | | |
357 | 357 | | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
358 | 363 | | |
359 | 364 | | |
360 | 365 | | |
| 366 | + | |
361 | 367 | | |
362 | 368 | | |
363 | 369 | | |
| |||
5402 | 5408 | | |
5403 | 5409 | | |
5404 | 5410 | | |
| 5411 | + | |
| 5412 | + | |
5405 | 5413 | | |
5406 | 5414 | | |
5407 | 5415 | | |
| |||
5422 | 5430 | | |
5423 | 5431 | | |
5424 | 5432 | | |
| 5433 | + | |
5425 | 5434 | | |
5426 | 5435 | | |
5427 | 5436 | | |
| |||
5434 | 5443 | | |
5435 | 5444 | | |
5436 | 5445 | | |
| 5446 | + | |
5437 | 5447 | | |
5438 | 5448 | | |
5439 | 5449 | | |
| |||
5978 | 5988 | | |
5979 | 5989 | | |
5980 | 5990 | | |
| 5991 | + | |
| 5992 | + | |
| 5993 | + | |
| 5994 | + | |
| 5995 | + | |
| 5996 | + | |
| 5997 | + | |
| 5998 | + | |
| 5999 | + | |
| 6000 | + | |
| 6001 | + | |
| 6002 | + | |
| 6003 | + | |
| 6004 | + | |
| 6005 | + | |
| 6006 | + | |
| 6007 | + | |
| 6008 | + | |
5981 | 6009 | | |
5982 | 6010 | | |
5983 | 6011 | | |
| |||
6008 | 6036 | | |
6009 | 6037 | | |
6010 | 6038 | | |
| 6039 | + | |
| 6040 | + | |
| 6041 | + | |
| 6042 | + | |
| 6043 | + | |
| 6044 | + | |
| 6045 | + | |
| 6046 | + | |
| 6047 | + | |
| 6048 | + | |
| 6049 | + | |
| 6050 | + | |
| 6051 | + | |
| 6052 | + | |
| 6053 | + | |
6011 | 6054 | | |
6012 | 6055 | | |
6013 | 6056 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
390 | 390 | | |
391 | 391 | | |
392 | 392 | | |
393 | | - | |
| 393 | + | |
394 | 394 | | |
395 | 395 | | |
396 | 396 | | |
| |||
421 | 421 | | |
422 | 422 | | |
423 | 423 | | |
| 424 | + | |
424 | 425 | | |
425 | 426 | | |
426 | 427 | | |
| |||
931 | 932 | | |
932 | 933 | | |
933 | 934 | | |
934 | | - | |
| 935 | + | |
| 936 | + | |
935 | 937 | | |
936 | 938 | | |
937 | 939 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6801 | 6801 | | |
6802 | 6802 | | |
6803 | 6803 | | |
| 6804 | + | |
| 6805 | + | |
| 6806 | + | |
| 6807 | + | |
| 6808 | + | |
| 6809 | + | |
| 6810 | + | |
| 6811 | + | |
| 6812 | + | |
| 6813 | + | |
| 6814 | + | |
| 6815 | + | |
| 6816 | + | |
| 6817 | + | |
| 6818 | + | |
| 6819 | + | |
| 6820 | + | |
| 6821 | + | |
| 6822 | + | |
| 6823 | + | |
| 6824 | + | |
| 6825 | + | |
| 6826 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| 29 | + | |
29 | 30 | | |
30 | 31 | | |
31 | 32 | | |
| |||
52 | 53 | | |
53 | 54 | | |
54 | 55 | | |
| 56 | + | |
55 | 57 | | |
56 | 58 | | |
57 | 59 | | |
| |||
0 commit comments