Skip to content

Instantly share code, notes, and snippets.

@153957
Last active December 12, 2015 06:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 153957/4731132 to your computer and use it in GitHub Desktop.
Save 153957/4731132 to your computer and use it in GitHub Desktop.
Test speed of data retrieval from HDF5 file. UPDATED with absolute/relative path comparison.
# It seems slightly faster to skip getting the groups/tables
import timeit
r = timeit.Timer(stmt="read = tables.openFile('Angle_120301_120314.h5', 'r');"
"group = read.root.s503;"
"blobs = group.blobs;"
"events = group.events;"
"event = events[-1];"
"trace_id = event['traces'];"
"trace = [zlib.decompress(blobs[trace_id[0]]).split(','),"
"zlib.decompress(blobs[trace_id[1]]).split(','),"
"zlib.decompress(blobs[trace_id[2]]).split(','),"
"zlib.decompress(blobs[trace_id[3]]).split(',')];"
"read.close()",
setup='import tables; import zlib')
min(r.repeat(2000, 1))
# 0.000643014907836914 (absolute path)
# 0.004560947418212891 (relative path)
r_direct = timeit.Timer(stmt="read = tables.openFile('Angle_120301_120314.h5', 'r');"
"event = read.root.s503.events[-1];"
"trace_id = event['traces'];"
"trace = [read.root.s503.blobs[trace_id[0]],"
"read.root.s503.blobs[trace_id[1]],"
"read.root.s503.blobs[trace_id[2]],"
"read.root.s503.blobs[trace_id[3]]];"
"read.close()",
setup='import tables')
min(r_direct.repeat(2000, 1))
# 0.0005998611450195312 (absolute path)
# 0.0045261383056640625 (relative path)
setup = """
import tables
def get_trace():
read = tables.openFile('Angle_120301_120314.h5', 'r')
event = read.root.s503.events[-1]
trace_id = event['traces']
trace = [read.root.s503.blobs[trace_id[0]],
read.root.s503.blobs[trace_id[1]],
read.root.s503.blobs[trace_id[2]],
read.root.s503.blobs[trace_id[3]]]
read.close()"""
r_function = timeit.Timer(stmt="get_trace()", setup=setup)
min(r_function.repeat(2000, 1))
# 0.000604152679443359 (absolute path)
# 0.004538059234619141 (relative path)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment