当前位置: 首页>>代码示例>>Java>>正文


Java EntryWeigher类代码示例

本文整理汇总了Java中com.googlecode.concurrentlinkedhashmap.EntryWeigher的典型用法代码示例。如果您正苦于以下问题:Java EntryWeigher类的具体用法?Java EntryWeigher怎么用?Java EntryWeigher使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


EntryWeigher类属于com.googlecode.concurrentlinkedhashmap包,在下文中一共展示了EntryWeigher类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: create

import com.googlecode.concurrentlinkedhashmap.EntryWeigher; //导入依赖的package包/类
/**
 * Initialize a cache with initial capacity with weightedCapacity
 */
public static <K extends IMeasurableMemory, V extends IMeasurableMemory> ConcurrentLinkedHashCache<K, V> create(long weightedCapacity, EntryWeigher<K, V> entryWeiger)
{
    ConcurrentLinkedHashMap<K, V> map = new ConcurrentLinkedHashMap.Builder<K, V>()
                                        .weigher(entryWeiger)
                                        .maximumWeightedCapacity(weightedCapacity)
                                        .concurrencyLevel(DEFAULT_CONCURENCY_LEVEL)
                                        .build();

    return new ConcurrentLinkedHashCache<K, V>(map);
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:14,代码来源:ConcurrentLinkedHashCache.java

示例2: create

import com.googlecode.concurrentlinkedhashmap.EntryWeigher; //导入依赖的package包/类
/**
 * Initialize a cache with initial capacity with weightedCapacity
 */
public static <K extends IMeasurableMemory, V extends IMeasurableMemory> ConcurrentLinkedHashCache<K, V> create(long weightedCapacity, EntryWeigher<K, V> entryWeiger)
{
    ConcurrentLinkedHashMap<K, V> map = new ConcurrentLinkedHashMap.Builder<K, V>()
                                        .weigher(entryWeiger)
                                        .maximumWeightedCapacity(weightedCapacity)
                                        .concurrencyLevel(DEFAULT_CONCURENCY_LEVEL)
                                        .build();

    return new ConcurrentLinkedHashCache<>(map);
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:14,代码来源:ConcurrentLinkedHashCache.java

示例3: initKeyCache

import com.googlecode.concurrentlinkedhashmap.EntryWeigher; //导入依赖的package包/类
/**
 * We can use Weighers.singleton() because Long can't be leaking memory
 * @return auto saving cache object
 */
private AutoSavingCache<KeyCacheKey, RowIndexEntry> initKeyCache()
{
    logger.info("Initializing key cache with capacity of {} MBs.", DatabaseDescriptor.getKeyCacheSizeInMB());

    long keyCacheInMemoryCapacity = DatabaseDescriptor.getKeyCacheSizeInMB() * 1024 * 1024;

    // as values are constant size we can use singleton weigher
    // where 48 = 40 bytes (average size of the key) + 8 bytes (size of value)
    ICache<KeyCacheKey, RowIndexEntry> kc;
    if (MemoryMeter.isInitialized())
    {
        kc = ConcurrentLinkedHashCache.create(keyCacheInMemoryCapacity);
    }
    else
    {
        logger.warn("MemoryMeter uninitialized (jamm not specified as java agent); KeyCache size in JVM Heap will not be calculated accurately. " +
                    "Usually this means cassandra-env.sh disabled jamm because you are using a buggy JRE; upgrade to the Sun JRE instead");
        /* We don't know the overhead size because memory meter is not enabled. */
        EntryWeigher<KeyCacheKey, RowIndexEntry> weigher = new EntryWeigher<KeyCacheKey, RowIndexEntry>()
        {
            public int weightOf(KeyCacheKey key, RowIndexEntry entry)
            {
                return key.key.length + entry.serializedSize();
            }
        };
        kc = ConcurrentLinkedHashCache.create(keyCacheInMemoryCapacity, weigher);
    }
    AutoSavingCache<KeyCacheKey, RowIndexEntry> keyCache = new AutoSavingCache<KeyCacheKey, RowIndexEntry>(kc, CacheType.KEY_CACHE, new KeyCacheSerializer());

    int keyCacheKeysToSave = DatabaseDescriptor.getKeyCacheKeysToSave();

    logger.info("Scheduling key cache save to each {} seconds (going to save {} keys).",
            DatabaseDescriptor.getKeyCacheSavePeriod(),
                keyCacheKeysToSave == Integer.MAX_VALUE ? "all" : keyCacheKeysToSave);

    keyCache.scheduleSaving(DatabaseDescriptor.getKeyCacheSavePeriod(), keyCacheKeysToSave);

    return keyCache;
}
 
开发者ID:dprguiuc,项目名称:Cassandra-Wasef,代码行数:44,代码来源:CacheService.java


注:本文中的com.googlecode.concurrentlinkedhashmap.EntryWeigher类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。