9

thể trùng lặp:
Do comments slow down an interpreted language?Bạn có nhận xét quá mức về việc thực thi mã chậm không?

Sẽ có sự xuống cấp hiệu suất đáng kể trong việc thực hiện một file py lớn nếu có nhiều hơn 75% số dòng mã được nhận xét đúng?

+2

Không, nhưng nếu bạn có nhận xét về 75% mã của mình, bạn có thể hưởng lợi từ việc không nhận xét nhiều và thay vì viết mã có thể đọc được. – delnan

Trả lời

17

Không

Khi bạn chạy python, bước đầu tiên là chuyển đổi sang bytecode, đó là những gì những .pyc file đang có. Nhận xét được xóa khỏi những mục này, vì vậy, sẽ không quan trọng *.

Nếu bạn chạy với tùy chọn -O hoặc -OO, python sẽ tạo các tệp "tối ưu hóa" pyo, nhanh hơn đáng kể, nếu nhanh hơn. Sự khác biệt chính là:

  • với -O khẳng định được loại bỏ,
  • với các tùy chọn -OO, các __doc__ chuỗi được lột ra. Do đó đôi khi cần thiết, chạy với -OO không được khuyến nghị.

* nó được chỉ ra bên dưới mà .pyc tập tin được chỉ lưu lại cho mô-đun. Do đó, tệp thực thi cấp cao nhất phải được biên dịch lại mỗi khi nó chạy. Bước này có thể làm chậm một lớn thực thi python. Trong thực tế, hầu hết mã phải nằm trong các mô-đun, làm cho điều này không thành vấn đề.

+4

... vì vậy nó có thể ảnh hưởng đến thời gian * khởi động * của bạn, nhưng không ảnh hưởng đến thời gian thực hiện lâu dài của bạn. Cụ thể, nếu mọi thứ được biên dịch trước thành tệp '.pyc', thì đây là chi phí * một lần *, không phải chi phí mỗi lần chạy. – larsks

+0

Tôi nghi ngờ nó sẽ ảnh hưởng đến thời gian khởi động đáng chú ý, vì Python chỉ đơn giản là bỏ qua bất cứ điều gì giữa một # và một dòng mới. Ngoài ra, các tệp .pyc được giữ nguyên giữa các lần chạy nếu tệp .py không được sửa đổi, do đó, bất kỳ hiệu ứng nào chỉ là lần đầu tiên chương trình được chạy. –

+0

-1, vì chỉ các mô-đun được nhập được biên dịch thành .pyc; kịch bản thực thi không. – geoffspear

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