本文整理了Java中com.google.common.cache.LocalCache.evictsBySize()
方法的一些代码示例,展示了LocalCache.evictsBySize()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。LocalCache.evictsBySize()
方法的具体详情如下:
包路径:com.google.common.cache.LocalCache
类名称:LocalCache
方法名:evictsBySize
暂无
代码示例来源:origin: google/guava
boolean usesAccessQueue() {
return expiresAfterAccess() || evictsBySize();
}
代码示例来源:origin: google/j2objc
boolean usesAccessQueue() {
return expiresAfterAccess() || evictsBySize();
}
代码示例来源:origin: wildfly/wildfly
boolean usesAccessQueue() {
return expiresAfterAccess() || evictsBySize();
}
代码示例来源:origin: google/guava
AbstractCacheSet(ConcurrentMap<?, ?> map) {
this.map = map;
}
代码示例来源:origin: google/guava
static <K, V> void checkAndDrainRecencyQueue(
LocalCache<K, V> map, Segment<K, V> segment, List<ReferenceEntry<K, V>> reads) {
if (map.evictsBySize() || map.expiresAfterAccess()) {
assertSameEntries(reads, ImmutableList.copyOf(segment.recencyQueue));
}
segment.drainRecencyQueue();
}
代码示例来源:origin: google/guava
static <K, V> void checkEvictionQueues(
LocalCache<K, V> map,
Segment<K, V> segment,
List<ReferenceEntry<K, V>> readOrder,
List<ReferenceEntry<K, V>> writeOrder) {
if (map.evictsBySize() || map.expiresAfterAccess()) {
assertSameEntries(readOrder, ImmutableList.copyOf(segment.accessQueue));
}
if (map.expiresAfterWrite()) {
assertSameEntries(writeOrder, ImmutableList.copyOf(segment.writeQueue));
}
}
代码示例来源:origin: google/j2objc
/**
* Performs eviction if the segment is over capacity. Avoids flushing the entire cache if the
* newest entry exceeds the maximum weight all on its own.
*
* @param newest the most recently added entry
*/
@GuardedBy("this")
void evictEntries(ReferenceEntry<K, V> newest) {
if (!map.evictsBySize()) {
return;
}
drainRecencyQueue();
// If the newest entry by itself is too heavy for the segment, don't bother evicting
// anything else, just that
if (newest.getValueReference().getWeight() > maxSegmentWeight) {
if (!removeEntry(newest, newest.getHash(), RemovalCause.SIZE)) {
throw new AssertionError();
}
}
while (totalWeight > maxSegmentWeight) {
ReferenceEntry<K, V> e = getNextEvictable();
if (!removeEntry(e, e.getHash(), RemovalCause.SIZE)) {
throw new AssertionError();
}
}
}
代码示例来源:origin: google/guava
/**
* Performs eviction if the segment is over capacity. Avoids flushing the entire cache if the
* newest entry exceeds the maximum weight all on its own.
*
* @param newest the most recently added entry
*/
@GuardedBy("this")
void evictEntries(ReferenceEntry<K, V> newest) {
if (!map.evictsBySize()) {
return;
}
drainRecencyQueue();
// If the newest entry by itself is too heavy for the segment, don't bother evicting
// anything else, just that
if (newest.getValueReference().getWeight() > maxSegmentWeight) {
if (!removeEntry(newest, newest.getHash(), RemovalCause.SIZE)) {
throw new AssertionError();
}
}
while (totalWeight > maxSegmentWeight) {
ReferenceEntry<K, V> e = getNextEvictable();
if (!removeEntry(e, e.getHash(), RemovalCause.SIZE)) {
throw new AssertionError();
}
}
}
代码示例来源:origin: google/j2objc
AbstractCacheSet(ConcurrentMap<?, ?> map) {
this.map = map;
}
代码示例来源:origin: wildfly/wildfly
AbstractCacheSet(ConcurrentMap<?, ?> map) {
this.map = map;
}
代码示例来源:origin: google/guava
static void checkEviction(LocalCache<?, ?> map) {
if (map.evictsBySize()) {
for (Segment<?, ?> segment : map.segments) {
drainRecencyQueue(segment);
assertEquals(0, segment.recencyQueue.size());
assertEquals(0, segment.readCount.get());
ReferenceEntry<?, ?> prev = null;
for (ReferenceEntry<?, ?> current : segment.accessQueue) {
if (prev != null) {
assertSame(prev, current.getPreviousInAccessQueue());
assertSame(prev.getNextInAccessQueue(), current);
}
Object key = current.getKey();
if (key != null) {
assertSame(current, segment.getEntry(key, current.getHash()));
}
prev = current;
}
}
} else {
for (Segment<?, ?> segment : map.segments) {
assertEquals(0, segment.recencyQueue.size());
}
}
}
代码示例来源:origin: wildfly/wildfly
/**
* Performs eviction if the segment is over capacity. Avoids flushing the entire cache if the
* newest entry exceeds the maximum weight all on its own.
*
* @param newest the most recently added entry
*/
@GuardedBy("this")
void evictEntries(ReferenceEntry<K, V> newest) {
if (!map.evictsBySize()) {
return;
}
drainRecencyQueue();
// If the newest entry by itself is too heavy for the segment, don't bother evicting
// anything else, just that
if (newest.getValueReference().getWeight() > maxSegmentWeight) {
if (!removeEntry(newest, newest.getHash(), RemovalCause.SIZE)) {
throw new AssertionError();
}
}
while (totalWeight > maxSegmentWeight) {
ReferenceEntry<K, V> e = getNextEvictable();
if (!removeEntry(e, e.getHash(), RemovalCause.SIZE)) {
throw new AssertionError();
}
}
}
代码示例来源:origin: google/guava
public void testDefaults() {
LocalCache<Object, Object> map = makeLocalCache(createCacheBuilder());
assertSame(Strength.STRONG, map.keyStrength);
assertSame(Strength.STRONG, map.valueStrength);
assertSame(map.keyStrength.defaultEquivalence(), map.keyEquivalence);
assertSame(map.valueStrength.defaultEquivalence(), map.valueEquivalence);
assertEquals(0, map.expireAfterAccessNanos);
assertEquals(0, map.expireAfterWriteNanos);
assertEquals(0, map.refreshNanos);
assertEquals(CacheBuilder.UNSET_INT, map.maxWeight);
assertSame(EntryFactory.STRONG, map.entryFactory);
assertSame(CacheBuilder.NullListener.INSTANCE, map.removalListener);
assertSame(DISCARDING_QUEUE, map.removalNotificationQueue);
assertSame(NULL_TICKER, map.ticker);
assertEquals(4, map.concurrencyLevel);
// concurrency level
assertThat(map.segments).hasLength(4);
// initial capacity / concurrency level
assertEquals(16 / map.segments.length, map.segments[0].table.length());
assertFalse(map.evictsBySize());
assertFalse(map.expires());
assertFalse(map.expiresAfterWrite());
assertFalse(map.expiresAfterAccess());
assertFalse(map.refreshes());
}
代码示例来源:origin: at.bestsolution.efxclipse.eclipse/com.google.guava
boolean usesAccessQueue() {
return expiresAfterAccess() || evictsBySize();
}
代码示例来源:origin: com.google.guava/guava-jdk5
boolean usesAccessQueue() {
return expiresAfterAccess() || evictsBySize();
}
代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby
boolean usesAccessQueue() {
return expiresAfterAccess() || evictsBySize();
}
代码示例来源:origin: com.google.guava/guava-jdk5
AbstractCacheSet(ConcurrentMap<?, ?> map) {
this.map = map;
}
代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby
AbstractCacheSet(ConcurrentMap<?, ?> map) {
this.map = map;
}
代码示例来源:origin: com.google.guava/guava-tests
static <K, V> void checkAndDrainRecencyQueue(LocalCache<K, V> map,
Segment<K, V> segment, List<ReferenceEntry<K, V>> reads) {
if (map.evictsBySize() || map.expiresAfterAccess()) {
assertSameEntries(reads, ImmutableList.copyOf(segment.recencyQueue));
}
segment.drainRecencyQueue();
}
代码示例来源:origin: com.google.guava/guava-tests
static <K, V> void checkEvictionQueues(LocalCache<K, V> map,
Segment<K, V> segment, List<ReferenceEntry<K, V>> readOrder,
List<ReferenceEntry<K, V>> writeOrder) {
if (map.evictsBySize() || map.expiresAfterAccess()) {
assertSameEntries(readOrder, ImmutableList.copyOf(segment.accessQueue));
}
if (map.expiresAfterWrite()) {
assertSameEntries(writeOrder, ImmutableList.copyOf(segment.writeQueue));
}
}
内容来源于网络,如有侵权,请联系作者删除!