`_remote_debugging`: `RemoteUnwinder(..., jit=True)`
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 77.2k
- Forks
- 35.9k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Feature or enhancement
Proposal:
:)
The idea here is to expose JIT internals a bit more in the Tachyon profiler.
The questions that could be answered trivially:
- Is JIT actually used? How often?
- Which executor is hot?
- What change made the largest difference (
diff_flamegraph), in terms of % spent in JIT? Per line?
A bit harder:
- Which UOPs actually eat time?
- Which stensils are good?
- What guards or deopts are bad?
- What is the trace shape?
The very minimal change that I'm thinking about here is just adding --jit flag (active for --jsonl and maybe for --live but it's a catnip), and adding JitInfo to ThreadInfo.
That's how it could look:
JitInfo(
executor_id,
flags
)
This will requires extending debug offsets, obviously.
We could potentially expose native_pc, native_offset, uop_index, exit_index etc. The question would be how to expose metadata for it without balooning JitInfo, and how far we can get without blocking and native unwinding. :)
I'm pretty much open to any other ideas.
There will be definitely some performance impact (more VM reads), but hidden behind the --enable-experimental-jit flag should be bearable, and we could be more playful, going back and forth.
If you think it makes sense, I'd be willing to take a shot, but this will take multiple PRs.
Has this already been discussed elsewhere?
No response given
Links to previous discussion of this feature:
No response
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, _remote_debugging, RemoteUnwinder(..., jit=True) und den bestehenden ThreadInfo-Ablauf nachzuverfolgen. Vergleiche das vorgeschlagene Verhalten von --jit für --jsonl und möglicherweise --live, und untersuche anschließend, wie Debug-Offsets behandelt werden. Als abgeschlossen gilt die Festlegung des Umfangs für die Bereitstellung von JitInfo und seinen Metadaten hinter --enable-experimental-jit, wobei die Auswirkungen auf die Performance berücksichtigt werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- devtools, performance
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Ruhig
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100