[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
**Subject**: **Re: Multiple Assignment Overhead?**
**From**: Luiz Henrique de Figueiredo <lhf@...>
**Date**: Tue, 18 Sep 2012 22:42:30 -0300

> I'm wondering if a statement like this:
>
> x, y = math.pi/2, math.pi/4
>
> which doesn't need the extra work, would be less efficient than this:
>
> x = math.pi/2
> y = math.pi/4
No, they generate essentially the same code, except for when the values
are assigned to x and y:
-- x, y = math.pi/2, math.pi/4
1 [1] GETTABUP 0 0 -3 ; _ENV "math"
2 [1] GETTABLE 0 0 -4 ; "pi"
3 [1] DIV 0 0 -5 ; - 2
4 [1] GETTABUP 1 0 -3 ; _ENV "math"
5 [1] GETTABLE 1 1 -4 ; "pi"
6 [1] DIV 1 1 -6 ; - 4
7 [1] SETTABUP 0 -2 1 ; _ENV "y"
8 [1] SETTABUP 0 -1 0 ; _ENV "x"
9 [1] RETURN 0 1
-- x = math.pi/2 ; y = math.pi/4
1 [1] GETTABUP 0 0 -2 ; _ENV "math"
2 [1] GETTABLE 0 0 -3 ; "pi"
3 [1] DIV 0 0 -4 ; - 2
4 [1] SETTABUP 0 -1 0 ; _ENV "x"
5 [2] GETTABUP 0 0 -2 ; _ENV "math"
6 [2] GETTABLE 0 0 -3 ; "pi"
7 [2] DIV 0 0 -6 ; - 4
8 [2] SETTABUP 0 -5 0 ; _ENV "y"
9 [2] RETURN 0 1