Program-facts (wpfacts) stage takes ~18 min / 4 GB on typescript.js (expected seconds)

Đang mở
#13,974 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

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ả

bug package-audit performance

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

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của PerryTS/perry

Tất cả issue của PerryTS/perry

Issue tương tự

Thêm issue về Rust

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.