Trăn chậm hơn bao nhiêu lần?

Python là ngôn ngữ cấp cao [hơn C hoặc C++], do đó Python tự quản lý các chi tiết của chương trình như cấp phát bộ nhớ, cấp phát bộ nhớ, con trỏ, v.v. Điều này làm cho các lập trình viên viết mã bằng Python dễ dàng hơn. Mã Python đầu tiên được biên dịch thành Mã Byte python. Quá trình chuyển đổi trình thông dịch Byte Code diễn ra nội bộ và hầu hết được ẩn khỏi nhà phát triển. Mã byte là lập trình cấp thấp và độc lập với nền tảng. Biên dịch mã byte là tăng cường thực thi mã nguồn. Mã nguồn được biên dịch thành mã byte sau đó được thực thi từng cái một trong máy ảo của Python để thực hiện các thao tác. Máy ảo là một thành phần bên trong của Python

Mã Python nội bộ được giải thích trong thời gian chạy thay vì được biên dịch thành mã gốc do đó chậm hơn một chút.  

Chạy tập lệnh Python v/s chạy mã C/C++

con trăn. Đầu tiên nó được biên dịch thành Byte Code. Mã Byte này sau đó được giải thích và thực thi bởi PVM [Máy ảo Python]

C/C++. Mã nguồn được biên dịch thành Mã nhị phân có thể được CPU thực thi trực tiếp giúp chúng hoạt động hiệu quả hơn

Python cực kỳ phổ biến vì nó dễ học, linh hoạt và có hàng nghìn thư viện hữu ích cho khoa học dữ liệu. Nhưng có một điều là nó không nhanh.  

Điều đó sắp thay đổi trong Python 3. 11, hiện đang trong giai đoạn thử nghiệm đầu tiên của bản xem trước [phiên bản 3. 11. 0b1] trước khi phát hành ổn định vào cuối năm nay. Nhà phát triển Core Python [CPython] Mark Shannon đã chia sẻ chi tiết về dự án giúp Python nhanh hơn tại hội nghị PyCon 2022 tuần này, nơi các nhà phát triển cũng thể hiện tiến độ về mục tiêu chạy mã Python trong trình duyệt.  

Năm ngoái, Microsoft đã tài trợ một dự án cho Python Software Foundation [PSF], do nhà sáng lập Python, Guido van Rossum và Shannon, dẫn đầu, để làm cho Python nhanh gấp đôi so với phiên bản ổn định hiện tại 3. 10 loạt. Tầm nhìn là thúc đẩy Python hướng tới hiệu suất của C.  

HIỂU. Làm thế nào để được thăng chức. Năm cách để thăng tiến và có một sự nghiệp thành công

Microsoft đã thuê van Rossum vào năm 2020 và cho anh ấy toàn quyền chọn bất kỳ dự án nào. Tại hội nghị PyCon 2021 năm ngoái, anh ấy nói rằng anh ấy "đã chọn quay về cội nguồn của mình" và sẽ làm việc với sự thiếu hiệu suất nổi tiếng của Python.  

Có lẽ, hiệu suất không phải là ưu tiên hàng đầu của Python vì việc áp dụng đã được thúc đẩy bởi máy học và khoa học dữ liệu nhờ Tensor Flow, Numpy, Pandas và nhiều nền tảng khác, chẳng hạn như Boto3 SDK dành cho Python của AWS. Các nền tảng này được tải xuống hàng chục triệu lần mỗi tháng và được sử dụng trong các môi trường thường không bị hạn chế bởi phần cứng.  

Dự án CPython nhanh hơn đã cung cấp một số thông tin cập nhật về CPython 3. 11 hiệu suất trong năm qua. Trước thềm PyCon 2022, dự án đã công bố nhiều kết quả hơn so với 3. 11 beta xem trước đến 3. 10 trên hàng chục chỉ số hiệu suất, cho thấy rằng 3. 11 là tổng thể 1. 25 lần nhanh hơn 3. 10.  

Shannon thực tế về khả năng cải thiện hiệu suất Python của dự án, nhưng tin rằng những cải tiến này có thể mở rộng khả năng sử dụng khả thi của Python cho nhiều máy ảo hơn.  

"Python được công nhận rộng rãi là chậm. Mặc dù Python sẽ không bao giờ đạt được hiệu suất của các ngôn ngữ cấp thấp như C, Fortran hay thậm chí là Java, nhưng chúng tôi muốn nó có thể cạnh tranh với việc triển khai nhanh các ngôn ngữ tập lệnh, như V8 cho Javascript hoặc luajit cho lua," ông đã viết vào năm ngoái trong .  

"Cụ thể, chúng tôi muốn đạt được các mục tiêu hiệu suất này với CPython để mang lại lợi ích cho tất cả người dùng Python, kể cả những người không thể sử dụng PyPy hoặc các máy ảo thay thế khác. "

Cách tiếp cận chính được nêu chi tiết trong PEP 659 là một "trình thông dịch chuyên biệt, thích ứng chuyên biệt hóa mã một cách mạnh mẽ, nhưng trên một khu vực rất nhỏ và có thể điều chỉnh để chuyên môn hóa sai một cách nhanh chóng và với chi phí thấp. "

Như đã lưu ý, việc tối ưu hóa cho VM khá "đắt đỏ", thường đòi hỏi thời gian "khởi động" lâu. Để tránh chi phí thời gian này, VM nên "suy đoán rằng chuyên môn hóa là hợp lý ngay cả sau một vài lần thực thi chức năng", vì vậy trình thông dịch cần tối ưu hóa và hủy tối ưu hóa liên tục và rất rẻ.  

Điều này sẽ dẫn đến một trình thông dịch nhanh hơn cho CPython theo dõi các mã byte riêng lẻ trong quá trình thực thi chương trình. Công việc trên trình thông dịch mới gần như đã hoàn tất nhưng vẫn cần hoàn thành các chuyên môn động cho các vòng lặp và hoạt động nhị phân, theo PSF.  

Ngoài ra, mức tiêu thụ bộ nhớ trong 3. 11 không thay đổi từ 3. 10

HIỂU. Các nhà phát triển đang đối mặt với tình trạng kiệt sức. Đây là cách các công ty đang cố gắng khắc phục

Đối với câu hỏi về trình biên dịch just-in-time [JIT] cho hiệu suất của Python, Shannon cho rằng nó không phải là ưu tiên và có thể sẽ không xuất hiện cho đến Python 3. 13, theo báo cáo của Python Software Foundation về sự kiện này.  

Anaconda, nhà sản xuất bản phân phối Anaconda Python cho khoa học dữ liệu, đang hỗ trợ dự án Pyston, một triển khai Python hứa hẹn cải thiện tốc độ so với Python.  

Một trong những nỗ lực trước đây của Anaconda để tăng tốc Python là dự án Numba, trình biên dịch JIT dựa trên LLVM cho CPython, giúp tăng tốc các hàm số Python chạy trên CPU hoặc GPU, nhưng không thể tối ưu hóa toàn bộ chương trình và không giải quyết việc sử dụng Python rộng hơn . Một cái khác là PyPy, một triển khai CPython với trình biên dịch JIT để có hiệu suất nhanh hơn.    

Theo kế hoạch triển khai Faster Python, CPython 3. 12 có thể nhận được một "trình biên dịch JIT đơn giản cho các vùng nhỏ" để biên dịch các vùng nhỏ của mã chuyên biệt, trong khi 3. 13 sẽ tăng cường trình biên dịch để mở rộng các vùng biên dịch.  

Python chậm hơn bao nhiêu lần so với C?

Đó là 450 triệu vòng lặp trong một giây, nhanh hơn 45 lần so với Python. Hơn nữa, C có thể được biên dịch ở chế độ tối ưu hóa để có hiệu suất tốt hơn.

Python có chậm hơn C++ không?

Mã Python nội bộ được giải thích trong thời gian chạy thay vì được biên dịch thành mã gốc do đó chậm hơn một chút . Chạy tập lệnh Python v/s chạy mã C/C++. con trăn. Đầu tiên nó được biên dịch thành Byte Code. Mã Byte này sau đó được giải thích và thực thi bởi PVM [Máy ảo Python].

Python có phải là ngôn ngữ chậm nhất không?

Python là một trong những ngôn ngữ lập trình chậm nhất khi so sánh với các ngôn ngữ khác như Java, C#, Go, JavaScript và C++. Có một số loại trình biên dịch có sẵn, bao gồm JIT [C# và Java], AOT [C và C++] và các ngôn ngữ thông dịch như JavaScript.

Python chậm hơn Java bao nhiêu lần?

Để so sánh tốc độ thời gian chạy của hai ngôn ngữ lập trình, chẳng hạn như Java và Python, lập trình viên phải tập trung vào các triển khai cụ thể. Với ý nghĩ đó, Java nhanh hơn nhiều so với Python . Trong lịch sử, Java nhanh hơn tới hơn 25 lần, nhưng điều đó đã thay đổi sau khi phát hành Python 3.

Chủ Đề