Pyston 2 triển khai Python với trình biên dịch JIT

Sau ba năm gián đoạn phát triển, sự ra mắt của dự án Pyston 2 đã được công bố, tôi đã phát triển cái gìđể triển khai hiệu suất cao của ngôn ngữ Python sử dụng các diễn biến của dự án LLVM.

Việc thực hiện nổi bật với việc sử dụng các công nghệ biên dịch JIT hiện đại và nhằm đạt được hiệu suất cao tương tự như các ngôn ngữ hệ thống truyền thống như C ++.

Mã từ các phiên bản trước bởi Pyston đã được phân phối theo giấy phép Apache, nhưng mã Pyston 2 vẫn chưa có sẵn và chỉ các bản dựng sẵn sàng để sử dụng được phát hành cho Ubuntu 18.04 và 20.04 (một tệp có mã có sẵn để tải xuống nhưng chỉ còn sơ khai với thông tin rằng dự án vẫn đang bị đóng).

Xuất bản mã là một phần trong kế hoạch của các nhà phát triểnnhưng điều này sẽ được thực hiện sau khi hình thành mô hình kinh doanh đã hoàn thành của công ty mới và nó đã được quyết định tiếp tục phát triển Pyston mà không cần sự hỗ trợ tài chính của Dropbox.

Giới thiệu về Pyston 2

Không giống như các phiên bản trước, Pyston 2 được đánh dấu là ổn định và không phải là phiên bản dùng thử. Rất nhiều công việc đã được thực hiện để tối ưu hóa hiệu suất và Pyston 2 hiện nhanh hơn Python 3.8 ban đầu khoảng 20% ​​khi vượt qua bộ thử nghiệm python-macrobenchmarks.

Mức tăng hiệu suất đáng chú ý nhất được nhìn thấy trong khối lượng công việc ứng dụng web vốn có. Trong các thử nghiệm riêng biệt như hỗn loạn.py và nbody.py, Pyston 2 làm tốt hơn Python 3.8 theo hệ số 2. Chi phí sử dụng JIT là mức tiêu thụ bộ nhớ tăng nhẹ.

Chúng tôi rất vui mừng được phát hành Pyston v2, một triển khai nhanh hơn và tương thích cao với ngôn ngữ lập trình Python. Phiên bản 2 nhanh hơn 20% so với Python 3.8 tiêu chuẩn trong macrobenchmarks của chúng tôi. Quan trọng hơn, nó có thể nhanh hơn trong mã của bạn. Pyston v2 có thể giảm chi phí máy chủ, giảm độ trễ của người dùng và cải thiện năng suất của nhà phát triển.

Pyston v2 rất dễ triển khai, vì vậy nếu bạn đang tìm kiếm hiệu suất Python tốt hơn, chúng tôi khuyên bạn nên dành năm phút và dùng thử Pyston. Làm như vậy là một trong những cách dễ nhất để tăng tốc dự án của bạn.

Về khả năng tương thích với Python bản địa, dự án Pyston được quảng cáo là triển khai thay thế tương thích nhất cho CPython, vì Pyston là một nhánh của cơ sở mã CPython chính.

pít tông hỗ trợ tất cả các chức năng CPython, bao gồm API C để phát triển các phần mở rộng C. Pyston ban đầu được phát triển bởi Dropbox, vào năm 2017 đã quyết định ngừng phát triển nội bộ. Vào đầu năm 2020, các nhà phát triển hàng đầu của Pyston đã thành lập công ty của họ, tái tạo lại hoàn toàn dự án và bắt đầu làm việc toàn thời gian tại Pyston.

Chi tiết kỹ thuật về đệm Pyston 2 chưa được cung cấp, chỉ đề cập đến các tối ưu hóa DynASM JIT, bộ nhớ đệm nội tuyến và CPython chung. Phiên bản trước của Pyston sử dụng một phương pháp JIT tại một thời điểm, tương tự như JIT trong các công cụ JavaScript hiện đại.

Trong JIT, mã Python đã được phân tích cú pháp và dịch sang một đại diện trung gian LLVM (IR, Đại diện trung gian). Hơn nữa, biểu diễn IR được xử lý trong trình tối ưu hóa LLVM và được chuyển đến công cụ LLVM JIT để thực thi, công cụ này đã chuyển đổi biểu diễn IR thành mã máy.

Để có được thông tin về các loại biến cho các chương trình bằng ngôn ngữ Python động, kỹ thuật dự đoán xác suất của các loại đối tượng đã được sử dụng, tiếp theo là làm rõ lựa chọn đúng loại trong quá trình thực thi.

Do đó, Pyston liên tục thay đổi việc thực thi giữa hai nhánh: nhanh, khi tỷ lệ dự đoán được xác nhận, và chậm, được sử dụng trong trường hợp loại không khớp.

Công việc có thể được thực hiện ở chế độ đa luồng, cho phép thực thi song song một số chuỗi mã bằng ngôn ngữ Python và không bị khóa thông dịch toàn cục (GIL)

Cuối cùng nếu bạn muốn biết thêm về nó, bạn có thể kiểm tra các chi tiết trong liên kết theo dõi.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.