Hướng dẫn is python3 faster than python 2? - python3 có nhanh hơn python 2 không?

Tất nhiên, nó phụ thuộc vào, nhưng nó phụ thuộc vào điều gì và làm thế nào bạn có thể đánh giá phiên bản Python nhanh nhất cho ứng dụng của bạn?

Python 3 có chậm hơn Python 2 không? Phiên bản nào của Python 3 là nhanh nhất và bạn có những tùy chọn nào khác cho & nbsp; tốc độ?

Sử dụng bộ hiệu suất & nbsp; tiện ích

Nhóm Python cốt lõi quan tâm rất nhiều về hiệu suất, tôi đã đề cập trước trang web Speed.python.org, rất tuyệt khi so sánh các điểm chuẩn chính thức của Hồi giáo với các phiên bản của Cpython.

Có một vài vấn đề mặc dù:

  1. Kết quả khá khó đọc
  2. Họ không bao gồm Pypy

Thay vào đó, bạn có thể tải xuống hộp công cụ chạy trang web này bằng cách Running

pyperformance run --python={chosen_python_runtime} -o my_results.json

Điều này sẽ điều hành một loạt các ứng dụng được ghi lại trên thế giới thực của thế giới

Đây thực sự là những gì tôi đã làm cho bài viết này, chống lại các bản cài đặt chính thức của Python:

  • 2.7.10,
  • 3.4.4,
  • 3.5.4,
  • 3.6.1, và
  • 3.7 [Tôi có Beta 2].

Ngoài ra, điều này bao gồm Pypy [5.6.] Và Pypy3 [5.4.10].

Kết quả

Tôi đã phá vỡ kết quả xuống tùy thuộc vào trường hợp sử dụng, vì vậy hãy xem, chạy bài kiểm tra của riêng bạn và có thể viết bài kiểm tra của riêng bạn.

Tôi cũng đã tạo một tập lệnh đơn giản để lấy một danh sách các tệp dữ liệu hoàn hảo và tạo biểu đồ cho mỗi thử nghiệm. .

Trong tất cả các biểu đồ, kết quả là trong vài giây và thấp hơn là & nbsp; tốt hơn.

Các kết quả đầy đủ cùng với các biểu đồ có sẵn tại đây: //github.com/tonybaloney/performancy_testing/tree/master/png

Tôi đã bao gồm các bài kiểm tra mà tôi mặc dù có ý nghĩa. Phần còn lại của các thử nghiệm cho thấy các mẫu rất giống nhau, trong phần kết luận.

Kết xuất các mẫu HTML

Thử nghiệm django_html sẽ sử dụng công cụ kết xuất mẫu Django để xây dựng bảng HTML 150x150 tế bào. Nó tận dụng các lớp nội dung và mẫu của động cơ Django.

Python 3.7 nhanh hơn 1,19 lần so với Python 2.7, nhưng bản phát hành Python 3.x duy nhất để đánh bại điểm chuẩn Python 2.7 mà tôi đã chạy. Điểm chuẩn Speed.python.org cho thấy kết quả tương tự.1.19x faster than Python 2.7, but the only Python 3.x release to beat the Python 2.7 benchmark I ran. The speed.python.org benchmark shows similar results.

Pypy đập vỡ bất kỳ kết quả Cpython nào, nhưng với PYPY3 chậm gấp đôi PYPY. Đáng chú ý là quyết định gần đây của Django về việc bỏ hỗ trợ Python 2 trong Django 2.0 và hơn thế nữa, điều đó có nghĩa là Pypy cũng sẽ không còn tương thích với Django 2.

Thời gian khởi động

Bài kiểm tra này chỉ đơn giản là kiểm tra thời gian thực hiện để thông dịch viên bắt đầu. Nếu bạn có thể hiểu được sự ràng buộc của Python trong thời gian bằng cách chạy nhiều quy trình thì điều này sẽ rất đáng kể.

Hãy lưu ý ở đây về cú nhảy với Pypy, đặc biệt là Pypy3, tôi sẽ đi vào lý do tại sao ở cuối bài viết này.

Nhưng mấu chốt của điều này là thời gian khởi động Python 2.7 vẫn còn bất bại.

Cryptography: crypto_paes

Trong thử nghiệm này, bạn sẽ thấy tốc độ giảm đáng chú ý giữa Python 2 và 3. Tại sao? Crypto yêu cầu rất nhiều sự khủng hoảng số và Python 3 không còn có loại số nguyên 32 bit, chỉ một số nguyên dài [rất].

Người dùng Pypy - Bạn sẽ nhận thấy rằng PYPY3 chậm hơn gần 5 lần so với PYPY!almost 5x slower than PyPy!

N-Queens: Bài kiểm tra thuật toán

Việc thực hiện này không đặc biệt thanh lịch, và xin lỗi vì đã đưa ra những ký ức tồi tệ cho bất cứ ai phải ngồi qua các bài giảng thuật toán về chủ đề này. Câu đố khá đơn giản là đặt [n] nữ hoàng trên một bàn cờ để họ có thể đưa nhau.

Trong loạt Cpython, 3.7 lại xuất hiện trên đỉnh, nhưng đáng chú ý là kết quả Pypy và Pypy3 rất giống nhau.

Điểm nổi số học

Điểm chuẩn của Float Float là một ứng dụng nặng về số học nhân tạo, nổi, sẽ tạo ra 100.000 đối tượng tính toán math.cos[], math.sin[] và ________ 5 & nbsp ;.

Đây là loại ứng dụng hoàn hảo cho pypy, rất nhiều sự khủng hoảng số, các loại và phương pháp có thể dự đoán được. Python 3.7 có mã opcode gọi phương pháp nhanh mới đang được sử dụng trong thử nghiệm này.

Biểu cảm thường xuyên

Trong thử nghiệm Regex, 50 trang phổ biến nhất trên web và đăng nhập tất cả các hoạt động RegEXP được thực hiện. Mỗi thao tác được cho một trọng số được tính từ ước tính mức độ phổ biến của các trang nơi nó xảy ra và số lần nó được thực hiện trong khi tải mỗi trang. Cuối cùng, các chữ cái theo nghĩa đen trong dữ liệu được mã hóa bằng cách sử dụng ROT13 theo cách không ảnh hưởng đến cách RegEXPS khớp với đầu vào của chúng.

Tôi không biết những gì đã xảy ra với Pypy ở đây, tôi đã tò mò muốn biết liệu có ai khác có kết quả tương tự không!

CẬP NHẬT: Nhóm Pypy đã xem bài viết này và khắc phục sự cố trong một số giờ: the PyPy team saw this article and fixed the issue in a number of hours

Vậy Python 3 nhanh hơn Python & NBSP; 2?

Đúng! Trong hầu hết các bài kiểm tra. Các trường hợp ngoại lệ đáng chú ý là thử nghiệm crypto_paes, trong đó Python 3 chậm hơn 1,35 lần [vì các loại số nguyên], python_startup chậm hơn 1,39x.almost all tests. The notable exceptions were the crypto_paes test, where Python 3 was 1.35x slower [because of the integer types], python_startup as 1.39x slower.

Khởi nghiệp Python 3 chậm là một trong những vấn đề mà nhóm CPYThon cốt lõi đang làm việc trong các bản phát hành 3,8, 3,9.

Bên cạnh 2 bài kiểm tra đó, Python 3 còn nhanh hơn khoảng 1,21,3 lần trong các điểm chuẩn này. Bạn sẽ thấy một cải tiến nâng cấp lên Python 3.7 khi nó đứng đầu các kệ vào cuối năm nay.

Tại sao Pypy lại nhanh hơn rất nhiều và tại sao mọi người không chỉ sử dụng điều đó & nbsp; thay vào đó?

Pypy nhanh hơn CPython vì nó có trình biên dịch đúng lúc. Các trình biên dịch JIT có một lợi ích lớn ở chỗ chúng rất hiệu quả trong việc thực hiện các nhiệm vụ lặp đi lặp lại, có thể dự đoán được. Một trong những bản chất của điểm chuẩn là bạn cố gắng chạy cùng một đoạn mã nhiều lần để làm cho nó chính xác, đẩy ứng dụng và giảm tỷ suất lợi nhuận lỗi. Như vậy, Pypy tỏa sáng trên các thử nghiệm này.

Nhược điểm của một trình biên dịch JIT, và đặc biệt là Pypy, là chi phí khởi động cao. Một nhược điểm khác là thiếu khả năng tương thích cho nhiều phần mở rộng C. Bởi vì, Py Python, [Cpython, PSF Python chính thức] được viết bằng C, nhiều phần mở rộng của bên thứ 3 trên PYPI tận dụng điều này. Numpy sẽ là một ví dụ tốt, phần lớn Numpy được viết bằng mã C được tối ưu hóa. Khi bạn pip install numpy, nó sử dụng trình biên dịch C cục bộ của bạn và xây dựng một thư viện nhị phân cho thời gian chạy Python của bạn để sử dụng.

Bởi vì Pypy được viết bằng Python, nhiều mô -đun chỉ đơn giản là không thể hoạt động trong pypy. Vì vậy, bạn nên luôn luôn kiểm tra.

Ngoài ra, Pypy phải chịu một thách thức tương tự như CPython - sự thay đổi từ phiên bản 2 của ngôn ngữ sang phiên bản 3. Pypy3 Iithve đã không ổn định cho đến gần đây và trong các điểm chuẩn, bạn vẫn có thể thấy sự không nhất quán kỳ lạ với PYPY. Tôi cũng có vấn đề với các gói [ví dụ: pytest] bỏ hỗ trợ cho PYPY3 trong khi chúng giải quyết các vấn đề.

Sự kết luận

Python 3.7 là nhanh nhất trong số các chính thức của Python, và Pypy là triển khai nhanh nhất mà tôi đã thử nghiệm.

Tôi rất thích thấy Pypy3 cũng hoạt động, nếu không tốt hơn Pypy trong tương lai khi Python 2 trở nên ít sử dụng hơn.

Vẫn bị mắc kẹt trên Python & nbsp; 2?

Kiểm tra khóa học mới của tôi về Pluralsight để chuyển từ Python 2 đến 3.

ĐANG TẢI. . . Nhận xét và nhiều hơn nữa!
. . . comments & more!

Tại sao Python 3 nhanh hơn Python 2?

Python 3 có cú pháp dễ dàng hơn so với Python 2. Rất nhiều thư viện của Python 2 không tương thích về phía trước.Rất nhiều thư viện được tạo ra trong Python 3 để được sử dụng nghiêm ngặt với Python 3. Python 2 không còn được sử dụng kể từ năm 2020.. A lot of libraries of Python 2 are not forward compatible. A lot of libraries are created in Python 3 to be strictly used with Python 3. Python 2 is no longer in use since 2020.

Tốt hơn là sử dụng Python 2 hoặc 3?

Trong khi Python 2 có thời hoàng kim vào đầu những năm 2000, Python 3 là lựa chọn tốt nhất để học vào năm 2022. Bạn có thể tìm thấy một số trường hợp mà bạn cần sử dụng Python 2, nhưng trên toàn bộ, Python 3 là ngôn ngữ phổ biến nhất.Kể từ khi Python 2 bị nắng vào năm 2020, Python 3 đã thống trị thế giới lập trình.Python 3 is the best choice to learn in 2022. You might find some circumstances in which you need to use Python 2, but on the whole, Python 3 is the most popular language. Since Python 2 was sunsetted in 2020, Python 3 has dominated the programming world.

Tại sao Python 3 chậm hơn Python 2?

Sự khác biệt là trong việc thực hiện loại INT.Python 3. x sử dụng loại số nguyên có kích thước tùy ý [dài trong 2. x] độc quyền, trong khi ở Python 2.. Python 3. x uses the arbitrary-sized integer type [ long in 2. x] exclusively, while in Python 2.

Python nào nhanh hơn?

Pypy là một trình thông dịch thời gian chạy nhanh hơn một ngôn ngữ được giải thích đầy đủ, nhưng nó chậm hơn một ngôn ngữ được biên dịch đầy đủ như C., but it's slower than a fully compiled language such as C.

Bài Viết Liên Quan

Chủ Đề