Ehcache - ehcache如何获知当前内存大小

Ehcache - How does ehcache get to know about the current memory size

我在 Cache 的 Put 函数中没有看到任何地方调用了 sizeof Object 或类似的东西。那么ehCache是​​怎么知道当前内存满的呢。 我知道还有其他函数可以获取它,但需要明确调用它们。 我想知道在运行时,它是怎么知道memoey被填满的。

首先,如果 Ehcache 配置为这样做,它只会调整堆上的对象大小。当它是时,大小调整发生在堆上存储和 ARC 相关代码中,而不是在 Cache.put 方法中。

因此,如果您想查找代码,请从 net.sf.ehcache.store.MemoryStore#put 开始,另请参阅 net.sf.ehcache.pool.impl.AbstractPoolAccessor#add(java.lang.Object, java.lang.Object, java.lang.Object, boolean)