Я делаю сбор метрик для фрагмента кода и хочу сохранить коллекцию временных различий (тип примитив long
) для последующего анализа
Операция вставки для этой коллекции должна быть максимально эффективной, чтобы добавить к результатам наименьшие накладные расходы.
Я впервые проверил коллекцию ConcurrentLinkedQueue<Long>
. Это дало худшую производительность (вероятно, из-за упаковки / распаковки)
В настоящее время я остановился на использовании синхронизированного gnu.trove.TLongArrayList
, который почти в 7 раз быстрее для набора данных длиной 5 миллионов.
Будем с благодарностью признаны за любые рекомендации для других библиотек коллекций, которые могут быть хорошими кандидатами для сравнения в этом сценарии использования. Я взглянул на API-интерфейс guava, но ничего не смог найти