diff options
author | Jordan Cook <jordan.cook@pioneer.com> | 2021-08-20 16:42:39 -0500 |
---|---|---|
committer | Jordan Cook <jordan.cook@pioneer.com> | 2021-08-20 16:44:59 -0500 |
commit | 19633fd2cb68a648a91671169287ab512f228ffb (patch) | |
tree | 490eb9529a7a912d1f15918e67e6f0febe9fc0c6 /examples | |
parent | de320764a739c62258ecdebf822cef4c09d82a52 (diff) | |
download | requests-cache-19633fd2cb68a648a91671169287ab512f228ffb.tar.gz |
Add read speed test to benchmark example
Diffstat (limited to 'examples')
-rwxr-xr-x | examples/benchmark.py | 19 |
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) |