我需要在java中实现具有最大大小的缓存,希望使用内存中缓存的实际大小而不是缓存中的元素数量来实现.此缓存基本上将String作为键,String作为值.我已经使用java的LinkedHashMap结构实现了缓存,但问题是如何知道缓存的实际大小,以便我可以调整策略以在大小太大时删除对象.
想要使用检测包的getObjectSize()计算它,但似乎没有按预期工作.
当我执行getObjectSize(一个字符串)时,无论字符串的大小是多少,它都返回相同的大小:32.我猜它只是使用字符串的引用大小或类似的东西,而不是内容.所以不知道如何有效地解决这个问题.
你有什么想法 ?
非常感谢!
| 归档时间: |
|
| 查看次数: |
623 次 |
| 最近记录: |