Browse Source
map() is 5 times slower. That's mostly because of inefficiency of creating containers from iterables of unknown length (like map()).pull/706/merge
Paul Sokolovsky
11 years ago
4 changed files with 48 additions and 0 deletions
@ -0,0 +1,12 @@ |
|||
# Array operation |
|||
# Type: list, inplace operation using for. What's good about this |
|||
# method is that it doesn't require any extra memory allocation. |
|||
import bench |
|||
|
|||
def test(num): |
|||
for i in iter(range(num//10000)): |
|||
arr = [0] * 1000 |
|||
for i in range(len(arr)): |
|||
arr[i] += 1 |
|||
|
|||
bench.run(test) |
@ -0,0 +1,12 @@ |
|||
# Array operation |
|||
# Type: list, map() call. This method requires allocation of |
|||
# the same amount of memory as original array (to hold result |
|||
# array). On the other hand, input array stays intact. |
|||
import bench |
|||
|
|||
def test(num): |
|||
for i in iter(range(num//10000)): |
|||
arr = [0] * 1000 |
|||
arr2 = list(map(lambda x: x + 1, arr)) |
|||
|
|||
bench.run(test) |
@ -0,0 +1,12 @@ |
|||
# Array operation |
|||
# Type: bytearray, inplace operation using for. What's good about this |
|||
# method is that it doesn't require any extra memory allocation. |
|||
import bench |
|||
|
|||
def test(num): |
|||
for i in iter(range(num//10000)): |
|||
arr = bytearray(b"\0" * 1000) |
|||
for i in range(len(arr)): |
|||
arr[i] += 1 |
|||
|
|||
bench.run(test) |
@ -0,0 +1,12 @@ |
|||
# Array operation |
|||
# Type: list, map() call. This method requires allocation of |
|||
# the same amount of memory as original array (to hold result |
|||
# array). On the other hand, input array stays intact. |
|||
import bench |
|||
|
|||
def test(num): |
|||
for i in iter(range(num//10000)): |
|||
arr = bytearray(b"\0" * 1000) |
|||
arr2 = bytearray(map(lambda x: x + 1, arr)) |
|||
|
|||
bench.run(test) |
Loading…
Reference in new issue