Improve performance of H5Ovisit with deeply nested groups (#6272)

Improve performance of H5Ovisit (and H5Ocopy, and functions that
retrieve and object name) by passing more information about the visited
object from the underlying H5G_visit routine to these callbacks.
Introduced an internal object callback for H5G_visit to facilitate this.
H5Ovisit1 and potentially H5Ovisit2 are still slow with deeply nested
groups due to the way these deprecated functions interact with the VOL
layer.
This commit is contained in:
Neil Fortner
2026-03-13 13:51:24 -05:00
committed by GitHub
parent 2edccfd787
commit 950f47492f
7 changed files with 148 additions and 291 deletions
+4
View File
@@ -65,6 +65,10 @@ We would like to thank the many HDF5 community members who contributed to this r
## Library
### Improve performance of H5Ovisit() with deeply nested group structures
`H5Ovisit()` would previously internally traverse each object's path name from the iteration root group in order to retrieve information about that object, causing severe performance degradation with a deeply nested group structure. Modified the algorithm to instead retrieve information directly from the object. To get this benefit, users should use `H5Ovisit3()`, or use `H5Ovisit2()` with neither `H5O_INFO_HDR` nor `H5O_INFO_META_SIZE` selected in the `fields` parameter. Performance of `H5Ocopy()`, `H5Iget_name()`, and external links with a callback set should also improve in similar situations.
## Parallel Library
## Fortran Library