В течение жизненного цикла Java HashMap существует способ определить, сколько произошло столкновений/цепочек. Сколько раз изменение размера HashMap и сколько времени прошло каждое изменение размера?Статистика для java HashMap
Я проверил исходный код для HashMap (1.6), и похоже, что он может быть расширен, чтобы добавить к нему вышеуказанные функции.
Немного фона, я унаследовал какое-то унаследованное приложение, и поскольку мы используем CMS-GC, который оказывается не уплотняющим. Эти хеш-таблицы могут иметь более миллиона записей. Мы сталкиваемся с некоторыми проблемами производительности в производстве, которые возникают только во время всплесков активности. И мы не смогли воспроизвести их в нашей производственной копии.
В моем предыдущем проекте мы периодически печатаем статистику использования кеша, чтобы определить их эффективность.
Также был бы признателен за ваше мнение/критику в том, что это правильная линия мышления?
'Я проверил исходный код для HashMap (1.6), и похоже, что он может быть расширен, чтобы добавить к нему вышеуказанные функции.« Что вы видели, что заставило вас подумать об этом и какой подход вы имели в виду? Кроме того, почему вы теперь подозреваете, что этот подход не работает, так что вы спрашиваете здесь? –
Я искал либо критику (плохую идею), либо мнение (см. Эту библиотеку с открытым исходным кодом). Поиск Google не дал никаких результатов, поэтому я был удивлен. Обычно на большинство вопросов отвечают результаты Google. Вот интересная [ссылка] (http://www.javamex.com/tutorials/collections/hash_codes_advanced_statistics.shtml), которую я нашел, не уверен в математике за ней. Я опубликую последующее описание этого упражнения. – yichuan
В Java 8 есть некоторые полезные обновления для HashMap для производительности. Если вам посчастливилось использовать Java 8, вы должны попробовать его –