Mark Shannon
a8dd821d5b
GH-126491: GC: Mark objects reachable from roots before doing cycle collection (GH-127110)
...
* Mark almost all reachable objects before doing collection phase
* Add stats for objects marked
* Visit new frames before each increment
* Update docs
* Clearer calculation of work to do.
2024-12-02 10:12:17 +00:00
alm
4e0a4cafe8
summarize: Fix typo in stats ( #127450 )
2024-11-30 18:07:54 +02:00
Hugo van Kemenade
899fdb213d
Revert "GH-126491: GC: Mark objects reachable from roots before doing cycle collection (GH-126502)" ( #126983 )
2024-11-19 11:25:09 +02:00
Mark Shannon
b0fcc2c47a
GH-126491: GC: Mark objects reachable from roots before doing cycle collection (GH-126502)
...
* Mark almost all reachable objects before doing collection phase
* Add stats for objects marked
* Visit new frames before each increment
* Remove lazy dict tracking
* Update docs
* Clearer calculation of work to do.
2024-11-18 14:31:26 +00:00
Mark Shannon
c87b0e4a46
GH-124284: Add stats for refcount operations on immortal objects (GH-124288)
2024-09-23 19:10:55 +01:00
Jeff Glass
acf69e09c6
gh-115178: Add Counts of UOp Pairs to pystats (GH-115181)
2024-04-16 14:27:18 +01:00
Mark Shannon
c32dc47aca
GH-115776: Embed the values array into the object, for "normal" Python objects. (GH-116115)
2024-04-02 11:59:21 +01:00
Guido van Rossum
94c97423a9
Fix broken format in error for bad input in summarize_stats.py ( #117375 )
...
When you pass the script a non-existent input file, you get a TypeError instead of the intended ValueError.
2024-03-29 18:31:09 +00:00
Michael Droettboom
50369e6c34
gh-116996: Add pystats about _Py_uop_analyse_and_optimize (GH-116997)
2024-03-22 01:27:46 +08:00
Michael Droettboom
1a33513f99
gh-116879: Add new optimizer pystats to tables (GH-116880)
2024-03-16 23:10:43 +08:00
Michael Droettboom
b05afdd5ec
gh-115168: Add pystats counter for invalidated executors (GH-115169)
2024-02-26 17:51:47 +00:00
Guido van Rossum
142502ea8d
Tier 2 cleanups and tweaks ( #115534 )
...
* Rename `_testinternalcapi.get_{uop,counter}_optimizer` to `new_*_optimizer`
* Use `_PyUOpName()` instead of` _PyOpcode_uop_name[]`
* Add `target` to executor iterator items -- `list(ex)` now returns `(opcode, oparg, target, operand)` quadruples
* Add executor methods `get_opcode()` and `get_oparg()` to get `vmdata.opcode`, `vmdata.oparg`
* Define a helper for printing uops, and unify various places where they are printed
* Add a hack to summarize_stats.py to fix legacy uop names (e.g. `POP_TOP` -> `_POP_TOP`)
* Define helpers in `test_opt.py` for accessing the set or list of opnames of an executor
2024-02-20 20:24:35 +00:00
Michael Droettboom
fbb0169731
gh-115362: Add documentation to pystats output ( #115365 )
2024-02-16 17:06:07 +00:00
Mark Shannon
8144661017
GH-113710: Fix updating of dict version tag and add watched dict stats (GH-115221)
2024-02-12 16:07:38 +00:00
Michael Droettboom
ea3cd0498c
gh-114312: Collect stats for unlikely events (GH-114493)
2024-01-25 11:10:51 +00:00
Michael Droettboom
e45bae7a45
GH-114448: Don't sort summarize_stats.py histograms by amount of change (GH-114449)
2024-01-22 11:45:15 -08:00
Serhiy Storchaka
b3d2427f22
gh-58032: Do not use argparse.FileType in module CLIs and scripts (GH-113649)
...
Open and close files manually. It prevents from leaking files,
preliminary creation of output files, and accidental closing of stdin
and stdout.
2024-01-10 15:07:19 +02:00
Guido van Rossum
7316dfb0eb
gh-112320: Implement on-trace confidence tracking for branches ( #112321 )
...
We track the confidence as a scaled int.
2023-12-12 21:43:08 +00:00
Michael Droettboom
9495bcaf59
gh-111277: In summarize_stats.py, don't fail fast on invalid ratios ( #111278 )
2023-10-30 17:10:07 -07:00
Michael Droettboom
84b4533e84
gh-109329: Count tier2 opcode misses ( #110561 )
...
This keeps a separate 'miss' counter for each micro-opcode, incremented whenever a guard uop takes a deoptimization side exit.
2023-10-30 17:02:45 -07:00
Mark Shannon
b0699aa544
GH-111213: Fix a few broken stats (GH-111216)
2023-10-26 11:33:12 +01:00
Michael Droettboom
81eba76450
gh-110019: Refactor summarize_stats (GH-110398)
2023-10-24 09:57:39 +01:00
Michael Droettboom
9eb2489266
gh-109329: Add stat for "trace too short" (GH-110402)
2023-10-05 16:12:06 +01:00
Michael Droettboom
e561e98058
GH-109329: Add tier 2 stats (GH-109913)
2023-10-04 14:52:28 -07:00
Michael Droettboom
19f5effc27
GH-109373: Store metadata required for pystats comparison in the JSON (GH-109374)
2023-09-15 13:10:46 -07:00
Michael Droettboom
5dcbbd8861
GH-109330: Dump and compare stats using opcode names, not numbers (GH-109335)
2023-09-12 14:12:57 -07:00
Michael Droettboom
52beebc856
gh-109136: Fix summarize_stats.py tool ( #109137 )
2023-09-08 18:23:58 +02:00
Irit Katriel
665a4391e1
gh-105481: generate op IDs from bytecode.c instead of hard coding them in opcode.py ( #107971 )
2023-08-16 22:25:18 +00:00
Mark Shannon
2ba7c7f7b1
Add some GC stats to Py_STATS (GH-107581)
2023-08-04 10:34:23 +01:00
Carl Meyer
77262458fe
gh-87729: improve hit rate of LOAD_SUPER_ATTR specialization ( #104270 )
2023-05-11 08:08:13 -06:00
penguin_wwy
373bca0cc5
GH-102181: Improve specialization stats for SEND (GH-102182)
2023-05-10 22:40:59 +00:00
Brandt Bucher
0444ae2487
GH-100982: Break up COMPARE_AND_BRANCH (GH-102801)
2023-03-23 15:25:09 -07:00
Mark Shannon
7b14c2ef19
GH-100982: Add `COMPARE_AND_BRANCH` instruction (GH-100983)
2023-01-16 12:35:21 +00:00
Mark Shannon
c00eb1eae6
Don't double count misses. (GH-100984)
2023-01-13 15:57:39 +00:00
penguin_wwy
a02161286a
GH-99770: Make the correct call specialization fail kind show up in the stats (GH-99771)
2022-12-22 12:44:59 +00:00
Mark Shannon
5693f45b19
Assorted minor fixes for specialization stats. (GH-100219)
2022-12-14 15:50:02 +00:00
Michael Droettboom
1583c6e326
GH-100143: Improve collecting pystats for parts of runs (GH-100144)
...
* pystats off by default
* Add -Xpystats flag
* Always dump pystats, even if turned off
2022-12-12 14:50:43 +00:00
Michael Droettboom
9dc787ea96
GH-100026: Include the number of raw input files in summarize_stats.py (GH-100027)
2022-12-06 11:14:47 +00:00
Michael Droettboom
bf94c653f4
GH-99905: Fix output of misses in summarize_stats.py execution counts (GH-99906)
...
This was an indentation error introduced in 2844aa6a
2022-11-30 19:17:08 +00:00
Michael Droettboom
2844aa6a8e
Support comparing two sets of pystats (GH-98816)
...
This adds support for comparing pystats collected from two different builds.
- The `--json-output` can be used to load in a set of raw stats and output a
JSON file.
- Two of these JSON files can be provided on the next run, and then comparative
results between the two are output.
2022-11-04 10:15:54 +00:00
Mark Shannon
c0453a40fa
GH-94163: Add BINARY_SLICE and STORE_SLICE instructions. (GH-94168)
2022-06-27 12:24:23 +01:00
Victor Stinner
47e35625ff
gh-84623: Remove unused imports ( #94132 )
2022-06-22 19:14:27 +02:00
Mark Shannon
f805d37641
Stats: Add summary of top instructions for misses and deferred specialization. (GH-94072)
2022-06-22 08:50:02 +01:00
Mark Shannon
cdf7097612
Include freelists in allocation total. (GH-93799)
2022-06-14 14:44:26 +01:00
Mark Shannon
bbcf42449e
GH-90230: Add stats to breakdown the origin of calls to `PyEval_EvalFrame` (GH-93284)
2022-05-27 16:31:41 +01:00
Mark Shannon
a4460f2eb8
Split refcount stats into 'interpreter' and 'non-interpreter' (GH-92919)
2022-05-18 14:38:43 +01:00
Mark Shannon
93fc14933b
Summarize stats: Increase number of predecessor/successor pairs shown from 3 to 5. (GH-92853)
2022-05-17 10:59:24 +01:00
Mark Shannon
fa2b8b75eb
Improve object stats ( #92845 )
...
* Add incref/decref stats
* Show ratios for allocation in summary
2022-05-16 14:35:11 +01:00
Dennis Sweeney
d7a93cbf4b
summarize_stats.py: add pairs by opcode (GH-31957)
2022-03-18 10:10:31 +00:00
Mark Shannon
09487c11a5
Fix reporting of specialization stats. (GH-31503)
2022-02-22 17:18:10 +00:00