HDF5 для Python: интерфейсы высокого и низкого уровня. h5py

Я работал с файлами HDF5 с C и Matlab, используя один и тот же способ чтения и записи в наборы данных:

  • открыть файл с помощью h5f
  • открыть набор данных с h5d
  • выберите пробел с помощью h5s

и так далее...

Но сейчас я работаю с Python, и с его h5py библиотекой вижу, что у него есть два способа управления HDF5: высокоуровневый и низкоуровневый интерфейсы. А в первом случае требуется меньше строк кода, чтобы получить информацию из одной переменной файла.

Есть ли заметная потеря производительности при использовании высокоуровневого интерфейса?
Например, при работе с файлом со множеством переменных внутри, и мы должны прочитать только одну из них.


person Nicolás Ozimica    schedule 11.11.2011    source источник
comment
В большинстве случаев заметной разницы быть не должно. Почему бы просто не профилировать и посмотреть?   -  person Joe Kington    schedule 11.11.2011
comment
Профилирование — это одна из следующих вещей, которые я сделаю, но любое другое мнение от людей, которые уже сталкивались с этим вопросом, всегда ценно!   -  person Nicolás Ozimica    schedule 12.11.2011


Ответы (1)


Интерфейсы высокого уровня обычно имеют некоторую потерю производительности. После этого будет ли это заметно (стоит ли его исследовать) будет зависеть от того, что именно вы делаете со своим кодом.

Просто начните с высокоуровневого интерфейса. Если код в целом слишком медленный, начните профилирование и переместите узкие места в интерфейс более низкого уровня и посмотрите, поможет ли это.

person lgautier    schedule 27.11.2011