com.google.common.cache.LocalCache.evictsBySize()方法的使用及代码示例

x33g5p2x  于2022-01-24 转载在 其他  
字(7.0k)|赞(0)|评价(0)|浏览(88)

本文整理了Java中com.google.common.cache.LocalCache.evictsBySize()方法的一些代码示例,展示了LocalCache.evictsBySize()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。LocalCache.evictsBySize()方法的具体详情如下:
包路径:com.google.common.cache.LocalCache
类名称:LocalCache
方法名:evictsBySize

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));
 }
}

相关文章

微信公众号

最新文章

更多