我需要在java中实现一个具有最大大小的缓存,并且想要使用内存中缓存的实际大小而不是缓存中元素的数量。这个缓存基本上将String作为键和String作为值。我已经使用Java的LinkedHashMap结构实现了缓存,但问题是如何知道缓存的实际大小,以便我可以调整策略以在大小过大时丢弃对象。LRU字节缓存java
想要使用工具包的getObjectSize()来计算它,但它看起来不像预期的那样工作。
当我做getObjectSize(一个字符串),无论字符串的大小是什么,它返回相同的大小:32.我想这只是使用字符串的参考大小或类似的东西,而不是内容。所以不知道如何有效地解决这个问题。
你有什么想法吗?
非常感谢!
Thx,这应该使工作,可能比我实施的缓存更好,我猜。你会建议什么类型的缓存?根据条目的数量或缓存的大小?知道应用程序应该在服务器上运行,并且可以使用机器上的所有可用内存。 – Abbadon 2011-04-17 14:28:52