Comece com o novo JIT nativo do Python



Comece com o novo JIT nativo do Python

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.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *