Tôi đang thực hiện một số thử nghiệm liên quan đến tốc độ của câu lệnh if trong vòng lặp và hiệu ứng của chúng trên tốc độ. Một cái gì đó tôi thấy là nhất quán, hiệu quả cải thiện nếu tuyên bố. Mã của tôi:Khi vòng lặp với if-statement nhanh hơn vòng lặp
import time
t = time.time
start = t()
x = 0
while x < 10000000:
x += 1
time1 = t()
x = 0
while x < 10000000:
x += 1
if True:
pass
time2 = t()
print(start)
print(time1 - start) # Time for simple while-loop
print(time2 - time1) # Time for while+if
Một sản lượng mẫu sẽ là:
1355517837.993
1.7850000858306885
1.7209999561309814
Đó là hoàn toàn phản tác dụng trực quan. Vòng lặp while-if-while hoạt động nhanh hơn một chút so với vòng lặp while chuẩn. Điều này xảy ra hầu như mỗi khi tôi chạy nó; có lẽ 1 trong 20 lần mất nhiều thời gian hơn. Có ai biết tại sao không?
Điều gì sẽ xảy ra nếu bạn di chuyển 'x = 0' ra khỏi cả hai khối thời gian? Tôi đặt cược những gì bạn đang thấy là thông dịch viên phải phân bổ 'x' cho khối đầu tiên nhưng không phải là thứ hai. –
không giống nhau ở đây, tho '; tôi có thời gian như: '$ python t.py 1355519439.65 1.92616391182 2.65010595322'; chạy trên Python 2.7.3 – Rubens
Là kết quả tương tự nếu bạn lần đầu tiên chạy vòng lặp if và sau đó là một mà không có nó? Đối với tôi, cái đầu tiên luôn luôn nhanh hơn. – Edu