Код: Выделить всё
import numpy as np
from time import perf_counter as T
Shapes=[ (3,5), (30,50), (300,500), (3000, 5000), (30000, 50000) ]
for shape in Shapes:
h,w = shape
a = np.arange(1,h*w+1,dtype=np.uint32).reshape(h,w)
sT=T()
b = np.flipud(np.fliplr(a.T).T)
eT=T(); dT=eT-sT; print(f"{dT:.6f}", flush=True)
Код: Выделить всё
0.000010
0.000008
0.000008
0.000072
0.000294
Как это происходит? первые три измерения времени с массивами, увеличенными в 100 и 10 000 раз, находятся в одном и том же временном диапазоне, но время для массивов, увеличенных в 1000000 раз и в 100000000 раз, нет?
Было бы неплохо если вместе с этим объяснением будет подсказка, почему моя система Linux Mint 21.2 Xfce с 7,7 Ги памяти и файлом подкачки размером 2 ГБ зависает при многократном запуске этого кода с использованием Python 3.10 и numpy версии 1.26.4 и как избежать этого эффекта который, кажется, частично меняет свое направление в течение длительного времени.
Подробнее здесь: https://stackoverflow.com/questions/785 ... g-behavior