summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorJordan Cook <jordan.cook@pioneer.com>2021-08-20 16:42:39 -0500
committerJordan Cook <jordan.cook@pioneer.com>2021-08-20 16:44:59 -0500
commit19633fd2cb68a648a91671169287ab512f228ffb (patch)
tree490eb9529a7a912d1f15918e67e6f0febe9fc0c6 /examples
parentde320764a739c62258ecdebf822cef4c09d82a52 (diff)
downloadrequests-cache-19633fd2cb68a648a91671169287ab512f228ffb.tar.gz
Add read speed test to benchmark example
Diffstat (limited to 'examples')
-rwxr-xr-xexamples/benchmark.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/examples/benchmark.py b/examples/benchmark.py
index e50a0fc..b37ffef 100755
--- a/examples/benchmark.py
+++ b/examples/benchmark.py
@@ -13,11 +13,13 @@ from requests_cache import CachedResponse, CachedSession
BASE_RESPONSE = requests.get('https://httpbin.org/get')
CACHE_NAME = 'rubbish_bin.sqlite'
ITERATIONS = 5000
-MAX_RESPONSE_SIZE = 1024 * 6
+MAX_RESPONSE_SIZE = 1024 * 1024
def test_write_speed(session):
+ print(f'Testing write speed over {ITERATIONS} iterations')
start = time()
+
for i in range(ITERATIONS):
new_response = get_randomized_response(i)
session.cache.save_response(new_response)
@@ -27,6 +29,20 @@ def test_write_speed(session):
print(f'Elapsed: {elapsed:.3f} (avg {avg:.3f}ms per write)')
+def test_read_speed(session):
+ print(f'Testing read speed over {ITERATIONS} iterations')
+ keys = list(session.cache.responses.keys())
+ start = time()
+
+ for i in range(ITERATIONS):
+ key = keys[i % ITERATIONS]
+ session.cache.get_response(key)
+
+ elapsed = time() - start
+ avg = (elapsed / ITERATIONS) * 1000
+ print(f'Elapsed: {elapsed:.3f} (avg {avg:.3f}ms per read)')
+
+
def get_randomized_response(i=0):
"""Get a response with randomized content"""
new_response = CachedResponse.from_response(BASE_RESPONSE)
@@ -39,3 +55,4 @@ def get_randomized_response(i=0):
if __name__ == '__main__':
session = CachedSession(CACHE_NAME, backend='sqlite')
test_write_speed(session)
+ test_read_speed(session)