2011-11-11 11 views
7

pracuję z plikami hdf5 z C i Matlab, zarówno przy użyciu tego samego sposobu do odczytu i zapisu do zbiorów danych:HDF5 for Python: interfejsy wysokiego poziomu i niskiego poziomu. h5py

  • otwarty plik z h5f
  • otwarty zbiór danych z h5d
  • wybierz przestrzeń z h5s

i tak dalej ...

Ale teraz pracuję z Python, a dzięki bibliotece h5py widzę, że ma on dwa sposoby zarządzania HDF5: interfejsy wysokiego poziomu i niskiego poziomu. A z pierwszym zajmuje mniej linii kodu, aby uzyskać informacje z jednej zmiennej pliku.

Czy zauważalna jest utrata wydajności podczas korzystania z interfejsu wysokiego poziomu?
Na przykład, gdy mamy do czynienia z plikiem z wieloma zmiennymi w środku i musimy przeczytać tylko jedną z nich.

+0

W większości przypadków nie powinno być zauważalnej różnicy. Dlaczego nie po prostu go profilować i zobaczyć? –

+0

Profilowanie to jedna z kolejnych rzeczy, które zrobię, ale jakakolwiek inna opinia od ludzi, którzy już mieli do czynienia z tą sprawą, jest zawsze cenna !. –

Odpowiedz

2

Interfejsy wysokiego poziomu generalnie mają pewne obniżenie wydajności. Po tym, czy jest to zauważalne (warte zbadania), zależy od tego, co robisz dokładnie z kodem.

Po prostu zacznij od interfejsu wysokiego poziomu. Jeśli kod jest ogólnie zbyt wolny, rozpocznij profilowanie i przenieś wąskie gardła do interfejsu niższego poziomu i zobacz, czy to pomaga.

Powiązane problemy