
Aqui está um exemplo de programa que demonstra acelerações bastante consistentes com o JIT habilitado. É uma versão rudimentar do fractal Mandelbroit:
from time import perf_counter
import sys
print ("JIT enabled:", sys._jit.is_enabled())
WIDTH = 80
HEIGHT = 40
X_MIN, X_MAX = -2.0, 1.0
Y_MIN, Y_MAX = -1.0, 1.0
ITERS = 500
YM = (Y_MAX - Y_MIN)
XM = (X_MAX - X_MIN)
def iter(c):
z = 0j
for _ in vary(ITERS):
if abs(z) > 2.0:
return False
z = z ** 2 + c
return True
def generate():
begin = perf_counter()
output = ()
for y in vary(HEIGHT):
cy = Y_MIN + (y / HEIGHT) * YM
for x in vary(WIDTH):
cx = X_MIN + (x / WIDTH) * XM
c = complicated(cx, cy)
output.append("#" if iter(c) else ".")
output.append("n")
print ("Time:", perf_counter()-start)
return output
print("".be part of(generate()))
Quando o programa começa a ser executado, ele informa se o JIT está habilitado e então produz um gráfico do fractal no terminal junto com o tempo necessário para calculá-lo.
Com o JIT ativado, há uma aceleração bastante consistente de 20% entre as execuções. Se o aumento de desempenho não for óbvio, tente alterar o valor de ITERS para um número maior. Isso força o programa a trabalhar mais, portanto deve produzir uma aceleração mais óbvia.