Commit fa3bd95
committed
db: unify everything to use big-endian encoding, not mixed
Performance-wise, LE was a tiny bit faster though not consistently.
Perf goes 3-4% both ways, twice in LE's favour, once in BE's favour.
Still, BE is nicer as that's the natural order for leveldb comparators.
```
$ python3 -m timeit -n1 -r10 --setup "import random; from electrumx.lib.util import unpack_be_uint64, unpack_le_uint64; arr = [random.randbytes(8) for _ in range(10**7)]" "[unpack_be_uint64(x) for x in arr]"
1 loop, best of 10: 1.12 sec per loop
$ python3 -m timeit -n1 -r10 --setup "import random; from electrumx.lib.util import unpack_be_uint64, unpack_le_uint64; arr = [random.randbytes(8) for _ in range(10**7)]" "[unpack_le_uint64(x) for x in arr]"
1 loop, best of 10: 1.08 sec per loop
$ python3 -m timeit -n1 -r10 --setup "import random; from electrumx.lib.util import pack_be_uint64, pack_le_uint64; arr = [int.from_bytes(random.randbytes(8), byteorder='big') for _ in range(10**7)]" "[pack_be_uint64(x) for x in arr]"
1 loop, best of 10: 683 msec per loop
$ python3 -m timeit -n1 -r10 --setup "import random; from electrumx.lib.util import pack_be_uint64, pack_le_uint64; arr = [int.from_bytes(random.randbytes(8), byteorder='big') for _ in range(10**7)]" "[pack_le_uint64(x) for x in arr]"
1 loop, best of 10: 705 msec per loop
```
```
$ python3 -m timeit -n1 -r10 --setup "import random; from electrumx.lib.util import unpack_be_uint32, unpack_le_uint32; arr = [random.randbytes(4) for _ in range(10**7)]" "[unpack_be_uint32(x) for x in arr]"
1 loop, best of 10: 1.03 sec per loop
$ python3 -m timeit -n1 -r10 --setup "import random; from electrumx.lib.util import unpack_be_uint32, unpack_le_uint32; arr = [random.randbytes(4) for _ in range(10**7)]" "[unpack_le_uint32(x) for x in arr]"
1 loop, best of 10: 1.03 sec per loop
$ python3 -m timeit -n1 -r10 --setup "import random; from electrumx.lib.util import pack_be_uint32, pack_le_uint32; arr = [int.from_bytes(random.randbytes(4), byteorder='big') for _ in range(10**7)]" "[pack_be_uint32(x) for x in arr]"
1 loop, best of 10: 629 msec per loop
$ python3 -m timeit -n1 -r10 --setup "import random; from electrumx.lib.util import pack_be_uint32, pack_le_uint32; arr = [int.from_bytes(random.randbytes(4), byteorder='big') for _ in range(10**7)]" "[pack_le_uint32(x) for x in arr]"
1 loop, best of 10: 605 msec per loop
```1 parent 1c98c7b commit fa3bd95
2 files changed
Lines changed: 15 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
76 | 76 | | |
77 | 77 | | |
78 | 78 | | |
79 | | - | |
| 79 | + | |
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
9 | | - | |
10 | 8 | | |
11 | 9 | | |
12 | 10 | | |
| |||
25 | 23 | | |
26 | 24 | | |
27 | 25 | | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
28 | 30 | | |
29 | 31 | | |
30 | 32 | | |
31 | 33 | | |
32 | 34 | | |
33 | 35 | | |
34 | | - | |
| 36 | + | |
35 | 37 | | |
36 | 38 | | |
37 | 39 | | |
38 | | - | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
39 | 45 | | |
40 | 46 | | |
41 | 47 | | |
42 | 48 | | |
43 | | - | |
| 49 | + | |
44 | 50 | | |
45 | 51 | | |
46 | 52 | | |
47 | | - | |
| 53 | + | |
48 | 54 | | |
49 | 55 | | |
50 | 56 | | |
| |||
64 | 70 | | |
65 | 71 | | |
66 | 72 | | |
67 | | - | |
| 73 | + | |
68 | 74 | | |
69 | 75 | | |
70 | 76 | | |
71 | | - | |
| 77 | + | |
72 | 78 | | |
73 | 79 | | |
74 | 80 | | |
| |||
0 commit comments