Last active
December 12, 2015 06:38
-
-
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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