Hướng dẫn are for loops faster in python? - cho các vòng lặp nhanh hơn trong python?

Mục lục:

      • Báo cáo vấn đề
      • Sự chuẩn bị
      • Vòng lặp đơn giản
      • Vòng lồng nhau
      • Kết quả tóm tắt
      • Kết luận

Python là một trong những ngôn ngữ lập trình phổ biến nhất hiện nay. Nó có một ngôn ngữ cấp cao và được giải thích với cú pháp thanh lịch và có thể đọc được. Tuy nhiên, Python thường chậm hơn đáng kể so với Java, C#và đặc biệt là C, C ++ hoặc Fortran. Đôi khi các vấn đề về hiệu suất và tắc nghẽn có thể ảnh hưởng nghiêm trọng đến khả năng sử dụng của các ứng dụng.

May mắn thay, trong hầu hết các trường hợp, có những giải pháp để cải thiện hiệu suất của các chương trình Python. Có những lựa chọn mà các nhà phát triển có thể thực hiện để cải thiện tốc độ mã của họ. Ví dụ, lời khuyên chung là sử dụng các thói quen python hoặc bên thứ ba được tối ưu hóa, thường được viết bằng C hoặc Cython. Bên cạnh đó, nó nhanh hơn để làm việc với các biến cục bộ so với Globals, do đó, nó là một thực tế tốt để sao chép một biến toàn cầu vào một địa phương trước vòng lặp. Và như thế.

Cuối cùng, luôn có khả năng viết các chức năng Python của riêng mình trong C, C ++ hoặc Cython, gọi chúng từ ứng dụng và thay thế các thói quen tắc nghẽn Python. Nhưng đây thường là một giải pháp cực đoan và hiếm khi cần thiết cho thực tiễn.

Thông thường các vấn đề về hiệu suất phát sinh khi sử dụng các vòng python, đặc biệt là với một số lượng lớn các lần lặp. Có một số thủ thuật hữu ích để cải thiện mã của bạn và làm cho nó chạy nhanh hơn, nhưng điều đó vượt quá phạm vi ở đây.

Bài viết này so sánh hiệu suất của một số phương pháp khi tổng hợp hai phần tử khôn ngoan:

  • Sử dụng vòng lặp trong khi
  • Sử dụng vòng lặp cho
  • Sử dụng vòng lặp cho toàn bộ danh sách
  • Sử dụng thư viện của bên thứ ba
    n = 1_000
    x, y = random.sample[r, n], random.sample[r, n]
    3

Tuy nhiên, hiệu suất không phải là mối quan tâm duy nhất khi phát triển phần mềm. Hơn nữa, theo Donald Knuth trong nghệ thuật lập trình máy tính, tối ưu hóa sớm là gốc rễ của mọi điều ác [hoặc ít nhất là hầu hết] trong lập trình. Rốt cuộc, khả năng đọc của người Viking đếm được, như đã nêu trong Zen of Python của Tim Peters.

Báo cáo vấn đề

Chúng tôi sẽ cố gắng tổng hợp hai phần tử khôn ngoan. Nói cách khác, chúng tôi sẽ lấy hai chuỗi [danh sách hoặc mảng] có cùng kích thước và tạo cái thứ ba với các phần tử thu được bằng cách thêm các phần tử tương ứng từ các đầu vào.

Sự chuẩn bị

Vòng lặp đơn giản

import random
r = [random.randrange[100] for _ in range[100_000]]

Vòng lồng nhau

Kết quả tóm tắt

Vòng lặp đơn giản

Vòng lồng nhau

Kết quả tóm tắtKết luận

n = 1_000
x, y = random.sample[r, n], random.sample[r, n]

Python là một trong những ngôn ngữ lập trình phổ biến nhất hiện nay. Nó có một ngôn ngữ cấp cao và được giải thích với cú pháp thanh lịch và có thể đọc được. Tuy nhiên, Python thường chậm hơn đáng kể so với Java, C#và đặc biệt là C, C ++ hoặc Fortran. Đôi khi các vấn đề về hiệu suất và tắc nghẽn có thể ảnh hưởng nghiêm trọng đến khả năng sử dụng của các ứng dụng.

May mắn thay, trong hầu hết các trường hợp, có những giải pháp để cải thiện hiệu suất của các chương trình Python. Có những lựa chọn mà các nhà phát triển có thể thực hiện để cải thiện tốc độ mã của họ. Ví dụ, lời khuyên chung là sử dụng các thói quen python hoặc bên thứ ba được tối ưu hóa, thường được viết bằng C hoặc Cython. Bên cạnh đó, nó nhanh hơn để làm việc với các biến cục bộ so với Globals, do đó, nó là một thực tế tốt để sao chép một biến toàn cầu vào một địa phương trước vòng lặp. Và như thế.

%%timeit
i, z = 0, []
while i 

Bài Viết Liên Quan

Chủ Đề