From: Guido van Rossum Date: Mon, 10 Apr 2000 17:31:58 +0000 (+0000) Subject: Simple optimization by Christian Tismer, who gives credit to Lenny X-Git-Tag: v1.6a2~34 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ba71a247acc7cac07a75d79ff087b29b56ee0b55;p=python Simple optimization by Christian Tismer, who gives credit to Lenny Kneler for reporting this issue: long_mult() is faster when the smaller argument is on the left. Swap the arguments accordingly. --- diff --git a/Objects/longobject.c b/Objects/longobject.c index d5c2f5f767..a9ce6f3c3b 100644 --- a/Objects/longobject.c +++ b/Objects/longobject.c @@ -1223,6 +1223,15 @@ long_mul(a, b) size_a = ABS(a->ob_size); size_b = ABS(b->ob_size); + if (size_a > size_b) { + /* we are faster with the small object on the left */ + int hold_sa = size_a; + PyLongObject *hold_a = a; + size_a = size_b; + size_b = hold_sa; + a = b; + b = hold_a; + } z = _PyLong_New(size_a + size_b); if (z == NULL) return NULL;