Skip to content

Commit d24df1e

Browse files
committed
Measure mem and time in one go
1 parent ecbe374 commit d24df1e

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

bench/large-tree-store.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -250,21 +250,23 @@ def store_arrays_in_zarr(arrays, output_dir):
250250
return total_time
251251

252252

253-
def measure_memory_usage(func, *args, **kwargs):
254-
"""Measure memory usage of a function."""
255-
print("\nMeasuring memory usage...")
253+
def measure_memory_and_time(func, *args, **kwargs):
254+
"""Measure memory usage and execution time of a function in a single run."""
255+
print("\nMeasuring memory and time...")
256256

257257
def wrapper():
258258
return func(*args, **kwargs)
259259

260-
# Measure memory usage during execution
261-
mem_usage = memory_usage(wrapper, interval=0.1, timeout=None)
260+
# Measure memory usage and get return value (execution time)
261+
mem_usage, exec_time = memory_usage(wrapper, interval=0.1, timeout=None, retval=True)
262262

263263
max_memory_mb = max(mem_usage)
264264
min_memory_mb = min(mem_usage)
265265
memory_increase_mb = max_memory_mb - min_memory_mb
266266

267-
return max_memory_mb, min_memory_mb, memory_increase_mb, mem_usage
267+
memory_stats = (max_memory_mb, min_memory_mb, memory_increase_mb, mem_usage)
268+
269+
return exec_time, memory_stats
268270

269271

270272
def get_storage_size(path):
@@ -590,7 +592,8 @@ def create_comparison_plot(sizes_mb, tstore_results, h5py_results, zarr_results)
590592

591593
# Adjust layout and add overall title
592594
plt.tight_layout()
593-
fig.suptitle(f'Performance Comparison: {N_ARRAYS} arrays, {total_data_mb:.1f} MB total data',
595+
total_data_gb = total_data_mb / 1024
596+
fig.suptitle(f'Performance Comparison: {N_ARRAYS} arrays, {total_data_gb:.2f} GB total data',
594597
fontsize=16, fontweight='bold', y=0.98)
595598

596599
# Add extra space at the top for the title
@@ -860,8 +863,7 @@ def main():
860863
print("\n" + "="*60)
861864
print("BENCHMARKING h5py")
862865
print("="*60)
863-
h5py_memory_stats = measure_memory_usage(store_arrays_in_h5py, arrays, OUTPUT_FILE_H5PY)
864-
h5py_time = store_arrays_in_h5py(arrays, OUTPUT_FILE_H5PY)
866+
h5py_time, h5py_memory_stats = measure_memory_and_time(store_arrays_in_h5py, arrays, OUTPUT_FILE_H5PY)
865867
h5py_storage_size = get_storage_size(OUTPUT_FILE_H5PY)
866868
h5py_access_time = measure_access_time(arrays, (h5py_time, h5py_memory_stats, h5py_storage_size), "h5py")
867869
h5py_read_time = measure_complete_read_time(arrays, (h5py_time, h5py_memory_stats, h5py_storage_size), "h5py")
@@ -877,8 +879,7 @@ def main():
877879
print("\n" + "="*60)
878880
print("BENCHMARKING zarr")
879881
print("="*60)
880-
zarr_memory_stats = measure_memory_usage(store_arrays_in_zarr, arrays, OUTPUT_DIR_ZARR)
881-
zarr_time = store_arrays_in_zarr(arrays, OUTPUT_DIR_ZARR)
882+
zarr_time, zarr_memory_stats = measure_memory_and_time(store_arrays_in_zarr, arrays, OUTPUT_DIR_ZARR)
882883
zarr_storage_size = get_storage_size(OUTPUT_DIR_ZARR)
883884
zarr_access_time = measure_access_time(arrays, (zarr_time, zarr_memory_stats, zarr_storage_size), "zarr")
884885
zarr_read_time = measure_complete_read_time(arrays, (zarr_time, zarr_memory_stats, zarr_storage_size), "zarr")
@@ -892,8 +893,7 @@ def main():
892893
print("\n" + "="*60)
893894
print("BENCHMARKING TreeStore")
894895
print("="*60)
895-
tstore_memory_stats = measure_memory_usage(store_arrays_in_treestore, arrays, OUTPUT_DIR_TSTORE)
896-
tstore_time = store_arrays_in_treestore(arrays, OUTPUT_DIR_TSTORE)
896+
tstore_time, tstore_memory_stats = measure_memory_and_time(store_arrays_in_treestore, arrays, OUTPUT_DIR_TSTORE)
897897
tstore_storage_size = get_storage_size(OUTPUT_DIR_TSTORE)
898898
tstore_access_time = measure_access_time(arrays, (tstore_time, tstore_memory_stats, tstore_storage_size), "TreeStore")
899899
tstore_read_time = measure_complete_read_time(arrays, (tstore_time, tstore_memory_stats, tstore_storage_size), "TreeStore")

0 commit comments

Comments
 (0)