2011-11-11 24 views
7

He estado trabajando con los archivos HDF5 con C y Matlab, ambos utilizan el mismo camino para la lectura y la escritura en los conjuntos de datos:HDF5 para Python: interfaces de alto nivel frente a bajo nivel. h5py

  • archivo abierto con h5f
  • conjunto de datos abierto con h5d
  • seleccione espacio con h5s

y así sucesivamente ...

Pero ahora estoy trabajando con Python, y con su biblioteca h5py veo que tiene dos formas de administrar HDF5: interfaces de alto nivel y bajo nivel. Y con el primero se necesitan menos líneas de código para obtener la información de una sola variable del archivo.

¿Hay alguna pérdida notable de rendimiento cuando se utiliza la interfaz de alto nivel?
Por ejemplo, cuando se trata de un archivo con muchas variables dentro, y debemos leer solo una de ellas.

+0

En la mayoría de los casos, no debe haber una diferencia notable. ¿Por qué no solo perfilarlo y ver? –

+0

Hacer perfiles es una de las siguientes cosas que haré, pero cualquier otra opinión de personas que ya hayan enfrentado este asunto siempre es valiosa. –

Respuesta

2

Las interfaces de alto nivel por lo general van con una pérdida de rendimiento de algún tipo. Después de eso, si es notable (vale la pena investigar) dependerá de lo que está haciendo exactamente con su código.

Simplemente comience con la interfaz de alto nivel. Si el código en general es demasiado lento, comience a perfilar y mueva los cuellos de botella a la interfaz de nivel inferior y vea si ayuda.

Cuestiones relacionadas