Czy ktoś wie o szybsze dziesiętne wdrożenie w Pythona. Jak pokazuje przykład poniżej, standardowy dziesiętny python jest ~ 100 razy wolniejszy niż float.Python dziesiętny
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
Dzięki Maksim
Czy masz określony cel wydajności - tj. Algorytm, który jest zbyt wolny? A może masz nadzieję, że sprzęt będzie dziesiętny, tak jak IBM buduje w swoich komputerach typu mainframe? –
Czy jestem szalony, czy wyniki stają się jeszcze bardziej wyraźne, jeśli zmienisz wartość testową na dowolną wartość zmiennoprzecinkową/dziesiętną? Podobnie jak w przykładzie: test = the_class (115.45678) – longda