2015-09-04 2 views
0

Я использую кэш guava, и он печатает ниже. loadSuccessCount и totalLoadTime всегда равны нулю.Guava - Google Cache - loadSuccessCount всегда 0

CacheStats {HitCount = 0, missCount = 13, loadSuccessCount = 0, loadExceptionCount = 0, totalLoadTime = 0, evictionCount = 6}

Изначально все были 0, и я начал записывать статистику. По-прежнему loadSuccessCount равен нулю. Предполагается, что количество методов поиска кэша успешно загрузило новое значение.

Пожалуйста, помогите, почему это не дает правильного значения.

Код:

com.google.common.cache.Cache<Object, Object> newCache = CacheBuilder.from(configurations).recordStats().build(); 

public void put(String key, Object o) {  
    newCache.put(key,o);  
} 

public Object get(String key) {  
    Object o = newCache.getIfPresent(key);  
    return o ; 
} 

Update:

В статистике, loadSuccessCount, loadExceptionCount, totalLoadTime - Они применимы для LoadingCache. Не применимо для простого кеша, который я использую.

+0

Посмотрите на другие значения 'HitCount = 0, missCount = 13'. Что-то здесь не так. –

+1

Мы не можем сказать, что должен делать какой-то код, почему он ведет себя определенным образом, не видя никакой строки кода. Отправьте код, который воспроизводит эту проблему. –

+0

@JB Nizet Я добавил создатель кеша и получаю, ставил метод кода. – Vaandu

ответ

3

Опубликованного код никогда не позволяет ничего нагрузку погрузчика:

  • первого метод помещает данный объект в кэш, при заданном ключе. Таким образом, загрузчик не задействован
  • второй метод получает значение, связанное с данным ключом, если оно уже присутствует и не делает ничего, что оно не присутствует. Таким образом, загрузчик также не задействован.

В самом деле, вы даже не имеют кэш загрузки, поэтому количество нагрузок всегда будет 0.

+0

Не могли бы вы немного рассказать о загрузчике? жаль, что у вас не было лучшего понимания в этом кеше. – Vaandu

+0

ЗагрузкаКата - это кеш, который построен с помощью функции Loader. Типичный пример: вы хотите кэшировать веб-страницы. Таким образом, вы создаете кеш с загрузчиком. Задача загрузчика - получить веб-страницу на основе ее ключа: URL-адрес веб-страницы. При получении страницы для заданного URL-адреса из кеша кеш выглядит, если у него уже есть веб-страница. Если это так, оно возвращает его. В противном случае он вызывает загрузчик, затем сохраняет возвращенную веб-страницу и возвращает ее. Подробнее см. Https://github.com/google/guava/wiki/CachesExplained. –

Смежные вопросы