Program-facts (wpfacts) stage takes ~18 min / 4 GB on typescript.js (expected seconds)
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- rust, typescript
- Lĩnh vực
- compilers, performance
Hướng nghiên cứu
Start with program_facts.rs, which the issue names as describing the whole-program facts stage, and inspect the facts-only reporting options PERRY_FACTS_ONLY=1 and PERRY_FACTS_REPORT=1. Reproduce with the stated 10-line ts.transpileModule program and [email protected], then profile constraint generation and solving. Done means the stage handles tsc-sized modules in seconds or exits early with a note when a budget is exceeded.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Compiling a program that imports typescript from source spends ~18 minutes in the whole-program facts stage. program_facts.rs describes that stage as "a few seconds at most".
Setup: [email protected] with perry.compilePackages: ["typescript"] (plus allow.compilePackages), Perry ced22982, M1 mini. The program is a 10-line ts.transpileModule call.
| run | result |
|---|---|
| default compile | still in the facts stage after >20 min (killed) |
PERRY_FACTS_ONLY=1 PERRY_FACTS_REPORT=1 |
1061 s wall: 548 s constraint generation, 80 s solve, ~12.5M nodes, 4.1 GB peak footprint; wrote a 3.2 GB report dump |
PERRY_PROGRAM_FACTS=0 |
facts stage skipped; the remaining compile (mostly LLVM codegen of the single 9 MB typescript.js module, 34 units, ~990 MiB IR) takes 17–29 min at 7.4–10.3 GB peak RSS |
That LLVM time is a separate cost issue. The facts stage alone should not be ~18 min / 4 GB.
Why it matters: removing the native typescript binding (owner decision) makes import ts from 'typescript' compile typescript.js from source for every user. With the current numbers, each program that imports typescript costs ~35–45 min to compile by default. The object cache didn't hit across different entry programs either.
Expected: the facts stage scales to tsc-sized modules in seconds, or bails out early with a note when a module exceeds a budget.
- Ngôn ngữ chính
- Rust
- Star
- 4.9k
- Fork
- 166
- Merge trung bình
- 3 giờ 46 phút
- Pull request đã merge (30 ngày)
- 891
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của PerryTS/perry
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Maintainer thường phản hồi trong vòng 1 ngày
-
package-audit performance
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
PerryTS/perry#13976 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug package-audit
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 46/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug package-audit
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug package-audit
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 53/100
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của PerryTS/perry
Issue tương tự
-
Expression with ill-formed typeĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 94/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Maintainer thường phản hồi trong vòng 2 ngày
-
enhancement good first issue help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
area:ui
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
openfootmanager/openfootmanager#1365 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 90/100
JackMechem/marbble#305 ·
Maintainer thường phản hồi trong vòng 1 ngày