mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-18 15:15:56 +08:00
parent
487d5f0813
commit
a1d3e486e6
@ -476,6 +476,34 @@ Bug Fixes since HDF5-1.14.0 release
|
||||
===================================
|
||||
Library
|
||||
-------
|
||||
- Memory usage growth issue
|
||||
|
||||
Starting with the HDF5 1.12.1 release, an issue (GitHub issue #1256)
|
||||
was observed where running a simple program that has a loop of opening
|
||||
a file, reading from an object with a variable-length datatype and
|
||||
then closing the file would result in the process fairly quickly
|
||||
running out of memory. Upon further investigation, it was determined
|
||||
that this memory was being kept around in the library's datatype
|
||||
conversion pathway cache that is used to speed up datatype conversions
|
||||
which are repeatedly used within an HDF5 application's lifecycle. For
|
||||
conversions involving variable-length or reference datatypes, each of
|
||||
these cached pathway entries keeps a reference to its associated file
|
||||
for later use. Since the file was being closed and reopened on each
|
||||
loop iteration, and since the library compares for equality between
|
||||
instances of opened files (rather than equality of the actual files)
|
||||
when determining if it can reuse a cached conversion pathway, it was
|
||||
determining that no cached conversion pathways could be reused and was
|
||||
creating a new cache entry on each loop iteration during I/O. This
|
||||
would lead to constant growth of that cache and the memory it consumed,
|
||||
as well as constant growth of the memory consumed by each cached entry
|
||||
for the reference to its associated file.
|
||||
|
||||
To fix this issue, the library now removes any cached datatype
|
||||
conversion path entries for variable-length or reference datatypes
|
||||
associated with a particular file when that file is closed.
|
||||
|
||||
Fixes GitHub #1256
|
||||
|
||||
- Suppressed floating-point exceptions in H5T init code
|
||||
|
||||
The floating-point datatype initialization code in H5Tinit_float.c
|
||||
|
Loading…
Reference in New Issue
Block a user