Tôi đang xem qua một số link about generators mà ai đó đã đăng. Ban đầu, anh so sánh hai chức năng dưới đây. Trên thiết lập của mình, ông đã cho thấy một sự gia tăng tốc độ 5% với máy phát điện.Tốc độ máy phát điện trong python 3
Tôi đang chạy Windows XP, python 3.1.1 và dường như không thể sao chép kết quả. Tôi tiếp tục hiển thị "cách cũ" (logs1) nhanh hơn một chút khi được thử nghiệm với nhật ký được cung cấp và tối đa 1GB dữ liệu trùng lặp.
Ai đó có thể giúp tôi hiểu điều gì đang xảy ra khác nhau không?
Cảm ơn!
def logs1():
wwwlog = open("big-access-log")
total = 0
for line in wwwlog:
bytestr = line.rsplit(None,1)[1]
if bytestr != '-':
total += int(bytestr)
return total
def logs2():
wwwlog = open("big-access-log")
bytecolumn = (line.rsplit(None,1)[1] for line in wwwlog)
getbytes = (int(x) for x in bytecolumn if x != '-')
return sum(getbytes)
* chỉnh sửa, khoảng cách sai lầm trong copy/paste
Dường như với tôi, hai chức năng này về cơ bản giống nhau. Trong trường hợp không phải là bạn xây dựng một danh sách lớn, khi bạn có thể đã sử dụng một máy phát điện để thay thế. Vì vậy, tôi không ngạc nhiên khi họ chạy về cùng một tốc độ. – MatrixFrog
Điều đó có ý nghĩa, tôi chỉ tò mò vì sao anh ấy nhận được tốc độ tăng 5% và tôi thấy giảm 1% liên tục. – Will