Tin vui cho team Javascript: với prepack.io công cụ tối ưu hoá tốt nhất hiện nay

Vài điều giới thiệu về Prepack thì đây là một công cụ tối ưu hóa source code JavaScript: Phép toán có thể được thực hiện ngay tại thời gian biên dịch. Prepack thay thế global code của một bundle JavaScript với code tương đương, đó là một chuỗi quá trình đơn giản. Điều này sẽ giúp loại bỏ hầu hết các tính toán trung gian và phân phối đối tượng.

Ví dụ

Hello World

Loại bỏ tax trừu tượng

Fibonacci

Khởi tạo module

Environment Interactions và Branching

Cách chúng vận hành?

Một vài điều cần biết khi trải nghiệm thực tế với Prepack:

  • Abstract Syntax Tree (AST)
    PrePack hoạt động ở cấp AST, sử dụng Babel để phân tích cú pháp và tạo ra source code của JavaScript.
  • Thực hiện cụ thể
    Chức năng chính của Prepack như là một trình biên dịch tương thích với ECMAScript 5 – bổ sung trong JavaScript! Trình biên dịch tuân thủ chặt chẽ ECMAScript 2016 Language Specification, với trọng tâm là tính chính xác và phù hợp. Bạn có thể nghĩ đến trình biên dịch trong Prepack như một sự thực hiện tham chiếu gọn gàng của JavaScript.Trình biên dịch có khả năng theo dõi và hoàn tác tất cả các thành phần, bao gồm tất cả các đột biến đối tượng. Điều này cho phép tối ưu hóa quan sát.
  • Thực hiện mô phỏng
    Ngoài tính toán qua các giá trị cụ thể, trình biên viên của Prepack có khả năng hoạt động trên các giá trị trừu tượng thường phát sinh từ các tương tác môi trường. Ví dụ, Date.now có thể trả về một giá trị trừu tượng. Bạn cũng có thể chèn các giá trị trừu tượng bằng tay thông qua các chức năng trợ giúp phụ trợ như __abstract (). Prepack theo dõi tất cả các hoạt động được thực hiện qua các giá trị trừu tượng. Khi phân nhánh qua các giá trị trừu tượng, Prepack thực hiện và khám phá tất cả các khả năng. Do đó, Prepack như một công cụ mô phỏng cho JavaScript.
  • Biểu diễn biến trừu tượng
    Việc thực hiện mô phỏng sẽ xuất hiện vấn đề khi gặp các nhánh trên các giá trị trừu tượng. Tại điểm kiểm soát lưu lượng, Prepack sẽ tham gia vào việc thực hiện phân chia, thực hiện form biểu diễn biến trừu tượng. Tham gia các biến và cấu trúc dữ liệu heap có thể dẫn đến các giá trị trừu tượng có điều kiện. Prepack theo dõi thông tin về giá trị và kiểu domain có các giá trị trừu tượng.
  • Heap Serialization
    Vào cuối giai đoạn khởi tạo khi global code trả về, Prepack nắm bắt heap cuối cùng. Prepack sử dụng heap theo thứ tự, tạo ra code JavaScript rõ ràng đơn giản và liên kết tất cả các đối tượng có thể truy cập vào heap khởi tạo. Một số giá trị trong heap có thể là kết quả tính toán trên các giá trị trừu tượng. Đối với những giá trị này, Prepack tạo ra code thực hiện các tính toán như chương trình ban đầu đã làm.

Techtalk