2011-11-11 3 views
7

Je travaille avec des fichiers HDF5 avec C et Matlab, à la fois en utilisant la même manière pour la lecture et l'écriture aux ensembles de données:HDF5 pour Python: interfaces de haut niveau et de bas niveau. h5py

  • fichier ouvert avec h5f
  • ensemble de données ouvert avec h5d
  • select espace avec h5s

et ainsi de suite ...

Mais maintenant je travaille avec Python, et avec sa bibliothèque h5py je vois qu'il a deux façons de gérer HDF5: les interfaces de haut niveau et de bas niveau. Et avec le premier, il faut moins de lignes de code pour obtenir l'information d'une seule variable du fichier.

Y a-t-il une perte de performance notable lors de l'utilisation de l'interface de haut niveau?
Par exemple lorsque vous traitez un fichier avec beaucoup de variables à l'intérieur, et nous devons en lire seulement un.

+0

Dans la plupart des cas, il ne devrait pas y avoir de différence notable. Pourquoi ne pas simplement le profil et voir? –

+0

Le profilage est l'une des prochaines choses que je vais faire, mais toute autre opinion de personnes qui ont déjà fait face à ce problème est toujours utile! –

Répondre

2

Les interfaces de haut niveau entraînent généralement une perte de performance. Après cela, si elle est perceptible (mérite d'être étudié) dépendra de ce que vous faites exactement avec votre code.

Commencez simplement avec l'interface de haut niveau. Si le code est globalement trop lent, démarrez le profilage et déplacez les goulots d'étranglement vers l'interface de niveau inférieur pour voir si cela aide.