Szukam informacji o pamięci podręcznej na mapie, więc nie muszę przechowywać, na przykład, trafienia do bazy danych. W Javie korzystałem z doskonałej kolekcji Google MapMaker i ustawiłem termin wygaśnięcia, aby zachować pamięć podręczną tak świeżą, jak to konieczne oraz wartości miękkie, aby zmniejszyć zużycie pamięci. Wtedy będę miał funkcję, która oblicza wartość klucza, który obecnie nie jest buforowany.Pamięć podręczna oparta na mapach z wartościami wygaśnięcia i miękkości
MapMaker().softValues
.expireAfterWrite(10, TimeUnit.MINUTES)
.makeComputingMap(Function(...));
Jaki jest najlepszy sposób na zrobienie tego w Scali?
Jeśli to działa dobrze dla ciebie w języku Java, dlaczego robi to inaczej w Scali? Nie jestem świadomy żadnych specyficznych dla scala bibliotek. –
Cóż, miałem nadzieję na bardziej idiotyczną odpowiedź. Podczas gdy Google Guava jest znakomity, raczej nie będę musiał uwzględniać zależności, gdy biblioteki kolekcji Scali są tak dobrze napisane, jak są. –
I tylko FYI 'MapMaker(). SoftValues' jest teraz [przestarzałe] (http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/MapMaker.html#softValues ()), zamiast tego użyj 'CacheBuilder.softValues ()'. – sbeliakov