Tôi có bộ mã vạch n được lưu trữ trong 3 x n ma trận z
. Tôi tìm thấy sản phẩm bên ngoài bằng cách sử dụng np.einsum
. Khi tôi hẹn giờ nó sử dụng:"Kết quả trung gian đang được lưu trong bộ nhớ cache" nghĩa là gì?
%timeit v=np.einsum('i...,j...->ij...',z,z)
tôi đã có kết quả:
The slowest run took 7.23 times longer than the fastest. This could mean that an
intermediate result is being cached
100000 loops, best of 3: 2.9 µs per loop
gì đang xảy ra ở đây và nó có thể tránh được? 3 tốt nhất là 2.9us, nhưng chậm nhất có lẽ điển hình hơn.
Với mục đích thử nghiệm, hãy thử tăng kích thước 'n', điều này sẽ làm giảm phần' z' được lưu trong bộ nhớ cache của CPU và thông báo sẽ biến mất tại một số điểm –