diff options
author | Jonathan Kim <jkm@hdfgroup.org> | 2012-10-19 21:40:32 (GMT) |
---|---|---|
committer | Jonathan Kim <jkm@hdfgroup.org> | 2012-10-19 21:40:32 (GMT) |
commit | c61b885e8668ec0530032a87e8d5b762a248e069 (patch) | |
tree | 0c25132b9bf372fcf02cd22970e8cf898a4374ce | |
parent | caf88044e7210dcad25723c4c302370332fd3908 (diff) | |
download | hdf5-c61b885e8668ec0530032a87e8d5b762a248e069.zip hdf5-c61b885e8668ec0530032a87e8d5b762a248e069.tar.gz hdf5-c61b885e8668ec0530032a87e8d5b762a248e069.tar.bz2 |
[svn-r22934] Purpose:
HDFFV-8145 h5diff slowness with version >= 1.8.7
Description:
Improved speed when comparing HDF5 files with lots of attributes. Much slower performance was identified with release version from 1.8.7 to 1.8.10 compared to 1.8.6.
Merged from HDF5 trunk r22933.
Tested:
jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), tejeda (mac32-LE), cmake (jam)
-rw-r--r-- | release_docs/RELEASE.txt | 4 | ||||
-rw-r--r-- | tools/lib/h5diff_attr.c | 18 |
2 files changed, 21 insertions, 1 deletions
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 4e856b8..71741a9 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -107,7 +107,9 @@ Bug Fixes since HDF5-1.8.10 Tools ----- - - None + - h5diff: Improved speed when comparing HDF5 files with lots of + attributes. Much slower performance was identified with release version + from 1.8.7 to 1.8.10 compared to 1.8.6. (JKM 2012/10/19) F90 API ------- diff --git a/tools/lib/h5diff_attr.c b/tools/lib/h5diff_attr.c index 144159a..130a0d8 100644 --- a/tools/lib/h5diff_attr.c +++ b/tools/lib/h5diff_attr.c @@ -207,6 +207,12 @@ static herr_t build_match_list_attrs(hid_t loc1_id, hid_t loc2_id, table_attrs_t table_lp->nattrs_only2++; curr2++; } + + /* close for next turn */ + H5Aclose(attr1_id); + attr1_id = -1; + H5Aclose(attr2_id); + attr2_id = -1; } /* end while */ /* list1 did not end */ @@ -225,6 +231,10 @@ static herr_t build_match_list_attrs(hid_t loc1_id, hid_t loc2_id, table_attrs_t table_attr_mark_exist(infile, name1, table_lp); table_lp->nattrs_only1++; curr1++; + + /* close for next turn */ + H5Aclose(attr1_id); + attr1_id = -1; } /* list2 did not end */ @@ -243,6 +253,9 @@ static herr_t build_match_list_attrs(hid_t loc1_id, hid_t loc2_id, table_attrs_t table_attr_mark_exist(infile, name2, table_lp); table_lp->nattrs_only2++; curr2++; + + /* close for next turn */ + H5Aclose(attr2_id); } /*------------------------------------------------------ @@ -272,6 +285,11 @@ static herr_t build_match_list_attrs(hid_t loc1_id, hid_t loc2_id, table_attrs_t return 0; error: + if (0 < attr1_id) + H5Aclose(attr1_id); + if (0 < attr2_id) + H5Aclose(attr2_id); + return -1; } |