¿Alguien sabe de una implementación decimal más rápida en python. Como muestra el siguiente ejemplo, el decimal de python estándar es ~ 100 veces más lento que el flotante.Python Decimal
from timeit import Timer
def run(val, the_class):
test = the_class(1)
for c in xrange(10000):
d = the_class(val)
d + test
d - test
d * test
d/test
d ** test
str(d)
abs(d)
if __name__ == "__main__":
a = Timer("run(123.345, float)", "from decimal_benchmark import run")
print "FLOAT", a.timeit(1)
a = Timer("run('123.345', Decimal)", "from decimal_benchmark import run; from decimal import Decimal")
print "DECIMAL", a.timeit(1)
FLOAT 0.040635041427
DECIMAL 3.39666790146
Gracias, Maksim
¿Tiene un objetivo de rendimiento específico, es decir, un algoritmo que es demasiado lento? ¿O solo espera el decimal de hardware como las compilaciones de IBM en sus mainframes? –
¿Estoy loco o los resultados se vuelven aún más pronunciados si cambia el valor de prueba a algún valor flotante/decimal arbitrario? Como tal: test = the_class (115.45678) – longda