Hướng dẫn is python slow or fast? - python chậm hay nhanh?

Hướng dẫn is python slow or fast? - python chậm hay nhanh?

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

Điều đó sắp thay đổi trong Python 3.11, hiện đang trong giai đoạn beta đầ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 để làm cho Python nhanh hơn tại hội nghị Pycon 2022 trong tuần này, nơi các nhà phát triển cũng thể hiện tiến trình về mục tiêu chạy mã Python trong trình duyệt. & NBSP;

Năm ngoái, Microsoft đã tài trợ cho một dự án cho Quỹ phần mềm Python (PSF), do nhà sáng tạo Python Guido Van Rossum và Shannon dẫn đầu, để làm cho Python nhanh gấp đôi so với loạt 3.10 ổn định hiện tại. Tầm nhìn là đẩy Python hướng tới hiệu suất của C. & NBSP;

Xem: & NBSP; Làm thế nào để được thăng chức: Năm cách để leo lên thang và có một sự nghiệp thành công

Microsoft đã thuê Van Rossum vào năm 2020 & NBSP; và đưa cho anh ta một bàn tay miễn phí để chọn bất kỳ dự án nào. Tại hội nghị Pycon 2021 năm ngoái, ông nói rằng ông "chọn quay trở lại cội nguồn của tôi" và sẽ làm việc với sự thiếu hiệu suất nổi tiếng của Python. & NBSP;

Hiệu suất, có lẽ, 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 học máy và khoa học dữ liệu nhờ dòng chảy tenor, numpy, pandas và nhiều nền tảng khác, như SDK BOTO3 của AWS cho Python. 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. & NBSP;

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

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

"Python được thừa nhận rộng rãi là chậm. Trong khi 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, hoặc thậm chí Java, chúng tôi muốn nó cạnh tranh với việc triển khai nhanh chóng các ngôn ngữ kịch bản, như V8 cho Javascript hoặc Luajit cho Lua, "Ông viết & nbsp; năm ngoái trong đề xuất tăng cường Python (PEP) 659. & nbsp;

"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 bao gồm những người không thể sử dụng PYPY hoặc các máy ảo thay thế khác." & NBSP;

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

Như đã lưu ý, tối ưu hóa cho VM là "đắt tiền", thường đòi hỏi thời gian "khởi động" dài. Để 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 khi thực hiện một vài chức năng", do đó, trình thông dịch cần tối ưu hóa và giảm tối ưu hóa liên tục và rất rẻ. & NBSP;

Đ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 byte cá nhân trong quá trình thực hiện 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 yêu cầu hoàn thành các chuyên ngành động cho các vòng lặp và hoạt động nhị phân, theo PSF. & nbsp;

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

Xem: & nbsp; các nhà phát triển đang phải đối mặt với sự kiệt sức. Đây là cách các công ty đang cố gắng sửa chữa nó & nbsp; 

Về câu hỏi về trình biên dịch chỉ trong thời gian (JIT) cho hiệu suất của Python, Shannon cho rằng đây không phải là ưu tiên hàng đầu và có thể sẽ không đến cho đến Python 3.13, theo phạm vi bảo hiểm của Python Software Foundation về sự kiện. & NBSP;

Anaconda, nhà sản xuất phân phối Python Anaconda Python cho Khoa học dữ liệu, đang ủng hộ Dự án Pyston, một triển khai Python hứa hẹn cải thiện tốc độ so với Python. & NBSP;

Một trong những nỗ lực cũ 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 chức năng Python số 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 các trường hợp. Một người khác là PYPY, việc triển khai CPython với trình biên dịch JIT để thực hiện nhanh hơn. & nbsp; & nbsp;

Theo Kế hoạch triển khai Python nhanh hơn, CPython 3.12 có thể có được "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 dụng, 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. & NBSP;

Mã nguồn mở

Tôi nghĩ rằng câu trả lời của Keyle (trong số những người khác) mang đến một điểm cơ bản: một lượng lớn phụ thuộc vào cách bạn làm mọi việc. Liên kết đó đã đưa ra hai câu trả lời cho C ++, nhưng tôi có một thời gian khó tin rằng bất kỳ ai cũng sẽ viết C ++ giống như một trong hai. Nỗ lực đầu tiên của tôi sẽ trông giống như thế này:

#include 
#include 
#include 

class person { 
    int count_;
    static int current_;
public:
    person() : count_(++current_) {}
    int count() { return count_; }
};
int person::current_ = 0;
typedef std::vector plist;
class chain {
    plist people_;
    void check_wrap(std::vector::iterator &p) {
        if (p==people_.end())
            p = people_.begin();
    }
    void advance(std::vector::iterator &p, int places) {
        for (int i=0; i1) {
            advance(current, n);
            current = people_.erase(current);
            check_wrap(current);
        }
        return &(*current);
    }
};
int main() {
    const int ITER = 1000000;  
    clock_t start = clock();
    for(int i = 0 ; i 

.

Có một vài điểm về điều này tấn công tôi là thú vị. Đầu tiên, mã đã ngắn hơn rất nhiều - trên thực tế, cạnh tranh như mã ngắn nhất được hiển thị. Thứ hai, mã đã nhanh hơn một chút - có thể nhanh hơn bất cứ thứ gì ngoại trừ phiên bản được tối ưu hóa đặc biệt trong C ++.

Cuối cùng, ít nhất là với tôi, có vẻ như mã đã trở nên khá dễ đọc và hiểu. Đối với tôi, 'tiếng hét ()' của anh ấy có vẻ khá khó hiểu, như đã tạo ra một 'người' thực sự là một nút trong danh sách các đối tượng người được liên kết, với việc xử lý chuỗi một số quản lý danh sách liên kết, nhưng 'người' cũng thực hiện liên kết- Liệt kê những thứ cùng với những thứ 'người'.

Điều đó không nhất thiết (hoặc trực tiếp) cho chúng tôi biết về tốc độ của Python, nhưng tôi nghĩ rằng nó cho một ý tưởng về chất lượng của nhiều điểm chuẩn bạn có thể tìm thấy trên web. Viết gần như bất kỳ điểm chuẩn nào có ý nghĩa và chính xác là rất khó khăn - và cố gắng so sánh giữa các ngôn ngữ là một trong những khó khăn nhất trong số đó.

Tại sao Python lại chậm như vậy?

Không giống như các ngôn ngữ lập trình phổ biến khác bao gồm C# hoặc Java, Python được gõ động và ngôn ngữ được giải thích. Nó chậm chủ yếu do tính chất năng động và tính linh hoạt của nó.primarily due to its dynamic nature and versatility.

Python nhanh hơn hay chậm hơn?

Trong bài viết này, chúng tôi sẽ phát hiện ra rằng Python không phải là một ngôn ngữ xấu mà rất chậm. Nó được tối ưu hóa cho mục đích được xây dựng: Cú pháp dễ dàng, mã có thể đọc được và rất nhiều sự tự do cho nhà phát triển. Tuy nhiên, những lựa chọn thiết kế này làm cho mã Python chậm hơn các ngôn ngữ khác như C và Java.very slow. It is optimized for the purpose it is built: easy syntax, readable code and a lot of freedom for the developer. These design choices, however, do make Python code slower than other languages like C and Java.

Python có nhanh không?

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

Python nhanh hơn hay chậm hơn Java?

Python và Java là hai trong số những ngôn ngữ lập trình phổ biến và mạnh mẽ nhất.Java thường nhanh hơn và hiệu quả hơn Python vì nó là ngôn ngữ được biên dịch.Là một ngôn ngữ được giải thích, Python có cú pháp đơn giản hơn, ngắn gọn hơn Java.Nó có thể thực hiện chức năng tương tự như Java trong ít dòng mã hơn.Java is generally faster and more efficient than Python because it is a compiled language. As an interpreted language, Python has simpler, more concise syntax than Java. It can perform the same function as Java in fewer lines of code.

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

Các chương trình Python thường dự kiến sẽ chạy chậm hơn các chương trình Java, nhưng chúng cũng mất ít thời gian hơn để phát triển.Các chương trình Python thường ngắn hơn 3-5 lần so với các chương trình Java tương đương.Sự khác biệt này có thể được quy cho các loại dữ liệu cấp cao tích hợp của Python và gõ động của nó., but they also take much less time to develop. Python programs are typically 3-5 times shorter than equivalent Java programs. This difference can be attributed to Python's built-in high-level data types and its dynamic typing.

Python là nhanh hay C?

Đó là 450 triệu vòng 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.45 times faster than Python. Furthermore, C can be compiled in optimized mode for a better performance.