Wpis z mikrobloga

@memoize
def foo(a):
....return a == 'wykop'

ktoś wie czy użycie memoize w takim przypadku faktycznie coś przyspiesza?
widzę to na produkcji i zastanawiam się czy jest z tego jakaś korzyść.

#python #programowanie
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@FantaZy: Na poziomie implementacji zapewne zamienia wywołanie funkcji z jedną instrukcją na pobranie wartości z hashmapy.

Także w przypadku tak bardzo prostej logiki wg mnie nie warto.

Ale implementacje mogą być różne więc najlepiej zmierzyć.
  • Odpowiedz
@FantaZy: na pewno nie. memoize pod spodem ma hashmapę, gdzie kluczem są argumenty a wartościami no wartości funkcji. Zrobienie lookupu do hashmapy to policzenie hasha + przeczytanie wartości z pamięci hash mapy + porównanie klucza + niezerowy koszt obsługi hashmapy. Plus gdzieś te wyniki trzeba trzymać więc jest narzut pamięci. Twoja funkcja jedyne co robi to porównanie czyli podzbiór tego co w hashmapie

memoize ma sens jak ta operacja jest
  • Odpowiedz