Azure / Azure/typespec-azure

Performance improvement for emitters when handling large libraries

Open
#3,814 4 comments 0 reactions 0 assignees View on GitHub
epic needs-area
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.