LINUX.ORG.RU

Object pool для кастомного объекта

 , , ,


0

4

Проблема:

Есть самописная тулза для профайлинга джава классов. Она выполняет специфическую работу, поэтому заменить её готовыми аналогами не выходит. Т.к. тулза работает в продакшене, то быстродействие весьма критично.

Для каждого метода создаётся объект с данными профайлинга, после некоторого промежутка времени инфа из этих объектов собирается, а данные передаются в JMS queue и дальше приёмник их обрабатывает. Два самых узких места - это постоянное выделение памяти для объектов, которые собирают статистику и отправка в JMS.

Вопросы:

1) Насколько поможет создание пула из объектов, собирающих статистику? Для каждого нового метода инфа в объекте будет перетираться, это хороший тон в программировании? Если нет, то как лучше решить эту проблему?

2) Отправка в JMS осуществляется статическим классом со статическими методами отправки. Что тут можно придумать для более быстрой отправки сообщений в очередь?

з.ы. Работает эта приблуда внутри j2ee приложения. Юзается 6 java



Последнее исправление: by_zero (всего исправлений: 2)

Два самых узких места - это постоянное выделение памяти для объектов, которые собирают статистику и отправка в JMS.

Я не уверен что выделение памяти на обьекты и отправка в JMS - соизмеримые по времени обьекты. Я думаю что отправка в JMS на несколько порядков медленнее

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

я не говорю о соизмеримости, просто были перечислены два самых узких места

by_zero
() автор топика

Счетчик вызовов можно держать, например, для всех объектов в одном AtomicLongArray, в котором каждая ячейка соответствует одному объекту. Так и алокаций памяти не будет, и инкремент быстрый.

Если массив не подходит, то что-нибудь вроде ConcurrentHashMultiset из guava.

maxcom ★★★★★
()
Последнее исправление: maxcom (всего исправлений: 2)

что за инфа в объектах?

отчего у тебя повляются «новые методы», если классы старые? или у тебя статистика считается для каждого инстанса?

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.