2012-01-22 26 views
14

Phiên bản mới của tàu PyPy có tích hợp Stackless. Theo như tôi biết Stackless đi kèm không giống như Stackless gốc từ năm 2001 với sự tiếp tục. Vì vậy, chủ yếu nó là khung chủ đề màu xanh lá cây với điều phối viên.Stackless trong PyPy và PyPy + greenlet - sự khác biệt

Greenlet là một spin của Stackless cung cấp chức năng chủ đề màu xanh lá cây không xếp chồng làm mô-đun mở rộng.

Có lợi ích từ việc sử dụng "bản địa" Stackless từ PyPy hơn PyPy + greenlet + một số điều phối (ví dụ: gevent)? Hoặc vấn đề là tôi không thể sử dụng các loại phần mở rộng đó với PyPy? Để cụ thể hơn: Tôi biết rằng PyPy đã thực hiện riêng greenlet (dựa trên continulet). Nhưng tôi tò mò về khả năng kết nối greenlet bên ngoài với gevent và internal trong PyPy.

PyPy có sử dụng thư viện IO không đồng bộ cho Stackless để sử dụng thay vì chuẩn không?

Tôi biết chính bản thân stackless và các phần mở rộng không đồng bộ ánh sáng khác tới python (eventlet, gevent, twisted ...). Vì vậy, tôi không tìm thấy sự khác biệt giữa chúng, thay vì lợi thế mà đến hình thức pypy với xây dựng trong stackless.

Trả lời

13

PyPy có sử dụng thư viện IO không đồng bộ cho Stackless để sử dụng thay vì chuẩn không?

Tính đến PyPy 2.6.1 và 2.4.0 PyPy3 bạn có thể sử dụng asyncio (thông qua các gói pypi) để thay thế các tính năng đồng bộ của Stackless.

Có lợi ích từ việc sử dụng "bản địa" Stackless từ PyPy hơn PyPy + greenlet + một số điều phối

Bên ngoài API Stackless phong phú hơn (ví dụ như tẩy vi-đề) nó có thể là tốc độ kể từ khi lên lịch là một phần của thời gian chạy được viết bằng C. Điểm chuẩn nên làm cho điều này rõ ràng hay không.

Để biết thêm thông tin về stackless, hãy xem bài viết này What is Stackless?

Các vấn đề liên quan