Mam wiele obiektów Ruby z unikatowymi identyfikatorami, które aktualnie buforuję w mieszaniu. Kiedy obiekt ma przypisany identyfikator, przechodzi do skrótu. Pamięć podręczna jest kompletna, tzn. Każdy obiekt z identyfikatorem, który istnieje w zakresie Ruby, powinien również znajdować się w pamięci podręcznej.Pamięć podręczna obiektów Ruby
Mam jednak problem ze znalezieniem sposobu usuwania obiektów z pamięci podręcznej, gdy znikną ze wszystkich innych zakresów. Dzieje się tak, ponieważ obiekty znajdujące się w pamięci podręcznej nie zostaną zebrane.
Czy są jakieś podejścia do tego problemu? Dokumentacja dla WeakRef
sugeruje klasę WeakHash
, ale nie wydaje się do przyjęcia do praktycznego zastosowania, mimo że jest bardzo blisko tego, co myślę, że potrzebuję dla mojego projektu.
Dlaczego nie byłoby praktyczne? –
WeakRef jest tym, czego potrzebujesz. – Linuxios