I have built a framework which relied on high-level library heavily. It is really convient and esay to use so that I could focus myself on basic coding logic without caring too much about low-level details.
But, the performance of my code is a little bad. I would like to find some ways to improve it. I read some source codes and use intel profile tool to collect statistics. I feel that the TABLE is a kind of “heavy” data container when comparing with basic “dataset”. will the performance be better if I replace all of them by dataset (with field names)?
Would you please give me some guides about this topic.
In H5CPP the libhdf5hl.so high level interface is replaced with h5::append operator with an internal caching mechanism to mitigate the difference between tiny fragments and HDF5 chunks. The code base is pure C++17 headers, you could re-export it in C – if that is your thing.
On this presentation slide you can find some performance metrics done on a Lenovo X250; the code was designed for high frequency trading systems but can be used for sensor networks, or recording image frames as well.
H5CPP is a thin header only on top of the RAW or HDF5 C API – with the exception of h5::pt_t all h5cpp handles are binary compatible with the CAPI, meaning any CAPI calls can be done without modification to the code…
MIT license is permissive license, meaning I agreed that you MAY use h5cpp for any purpose. It is up to you and your teammates to decide if it is suitable for you or not – there is nothing in it for me either way you choose.