Tôi đang đối mặt với một tình huống kỳ lạ mà tôi không thể giải thích. Đây là thời gian thử nghiệm của tôi để tạo ra một danh sách lớn các bộ dữ liệu:Sự không thống nhất giữa% thời gian và% thời gian trong IPython
In [1]: def get_list_of_tuples():
...: return [(i,) for i in range(10**6)]
...:
In [2]: %time res = get_list_of_tuples()
CPU times: user 0.93 s, sys: 0.08 s, total: 1.01 s
Wall time: 0.98 s
In [3]: %timeit res = get_list_of_tuples()
1 loops, best of 3: 92.1 ms per loop
Như bạn có thể thấy, việc tạo danh sách lớn các bộ dữ liệu này chỉ mất chưa đầy một giây. timeit báo cáo thời gian thực hiện là khoảng 0,1 giây. Tại sao lại có sự khác biệt lớn trong hai báo cáo?
(Thử nghiệm trên IPython 0.11, Python 2.6.5.)
Bạn có nhận được kết quả tương tự nếu bạn chạy % timeit trước và% time second? – sth
Nhận xét thú vị. Có, tôi nhận được kết quả tương tự với một lệnh đảo ngược thực hiện. – badzil
Tôi không biết IronPython, vì vậy tôi không thể nói nhiều về '% time' hoặc'% timeit', nhưng tôi đoán là '% time' sẽ lặp lại kiểm tra thời gian 10 lần. –