Performance improvement for emitters when handling large libraries
- Dominant language
- TypeScript
- Stars
- 27
- Forks
- 90
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 156
Description
TypeSpec language emitters are taking an excessively long time to complete when processing large Resource Providers e.g. API Management.
In https://github.com/Azure/azure-rest-api-specs/pull/38241,
GO: 36min (no sample generation)
JS: 53 min
Java: 1h 18m
Python: 1h 35min
This directly impacts:
- TypeSpec SDK validation in TypeSpec migration.
- Inner loop developer experience (slow iteration, reduced productivity)
Expected Behavior
- Each language emitters should complete within 10 minutes for large RPs.
Contributor guide
Research direction
Start by reproducing the emitter timings for the large Resource Provider in azure-rest-api-specs PR 38241, comparing Go, JavaScript, Java, and Python. Trace where each TypeSpec language emitter spends time and define a representative large-RP benchmark; done means each emitter completes within 10 minutes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, java, javascript, python, typescript
- Domain
- developer-experience, performance
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100