1
0

wallet: some performance optimisations for get_receiving_addresses

jsondb takes a copy of the whole self.receiving_addresses
good for avoiding race conditions but horrible for performance...
this significantly speeds up at least
- synchronize_sequence, and
- is_beyond_limit (used by Qt AddressList)
This commit is contained in:
SomberNight
2019-06-28 20:20:24 +02:00
parent a2bffb9137
commit c6a54f05f5
3 changed files with 38 additions and 21 deletions

View File

@@ -691,12 +691,14 @@ class JsonDB(Logger):
return len(self.receiving_addresses)
@locked
def get_change_addresses(self):
return list(self.change_addresses)
def get_change_addresses(self, *, slice_start=None, slice_stop=None):
# note: slicing makes a shallow copy
return self.change_addresses[slice_start:slice_stop]
@locked
def get_receiving_addresses(self):
return list(self.receiving_addresses)
def get_receiving_addresses(self, *, slice_start=None, slice_stop=None):
# note: slicing makes a shallow copy
return self.receiving_addresses[slice_start:slice_stop]
@modifier
def add_change_address(self, addr):