From 74c710187c77ebd5ab8c5a44b07087f2c2ca786e Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Thu, 19 Jun 2014 22:27:13 +0300 Subject: [PATCH] bench: Three ways to process a byte buffer. --- tests/bench/bytebuf-1-inplace.py | 11 +++++++++++ tests/bench/bytebuf-2-join_map_bytes.py | 12 ++++++++++++ tests/bench/bytebuf-3-bytarray_map.py | 10 ++++++++++ 3 files changed, 33 insertions(+) create mode 100644 tests/bench/bytebuf-1-inplace.py create mode 100644 tests/bench/bytebuf-2-join_map_bytes.py create mode 100644 tests/bench/bytebuf-3-bytarray_map.py diff --git a/tests/bench/bytebuf-1-inplace.py b/tests/bench/bytebuf-1-inplace.py new file mode 100644 index 0000000000..7e7d9391cc --- /dev/null +++ b/tests/bench/bytebuf-1-inplace.py @@ -0,0 +1,11 @@ +# Doing some operation on bytearray +# Inplace - the most memory efficient way +import bench + +def test(num): + for i in iter(range(num//10000)): + ba = bytearray(b"\0" * 1000) + for i in range(len(ba)): + ba[i] += 1 + +bench.run(test) diff --git a/tests/bench/bytebuf-2-join_map_bytes.py b/tests/bench/bytebuf-2-join_map_bytes.py new file mode 100644 index 0000000000..daa622991f --- /dev/null +++ b/tests/bench/bytebuf-2-join_map_bytes.py @@ -0,0 +1,12 @@ +# Doing some operation on bytearray +# Pretty weird way - map bytearray thru function, but make sure that +# function return bytes of size 1, then join them together. Surely, +# this is slowest way to do it. +import bench + +def test(num): + for i in iter(range(num//10000)): + ba = bytearray(b"\0" * 1000) + ba2 = b''.join(map(lambda x:bytes([x + 1]), ba)) + +bench.run(test) diff --git a/tests/bench/bytebuf-3-bytarray_map.py b/tests/bench/bytebuf-3-bytarray_map.py new file mode 100644 index 0000000000..078d08e99b --- /dev/null +++ b/tests/bench/bytebuf-3-bytarray_map.py @@ -0,0 +1,10 @@ +# Doing some operation on bytearray +# No joins, but still map(). +import bench + +def test(num): + for i in iter(range(num//10000)): + ba = bytearray(b"\0" * 1000) + ba2 = bytearray(map(lambda x: x + 1, ba)) + +bench.run(test)