Коллекции - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > Полезное / Common > Программирование / Programming > Java

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

Ответ
Опции темы
Непрочитано 24.12.2014, 11:50   #1
Аватар для WoWan-SM
Герой

Автор темы (Топик Стартер) Коллекции

Пишу "шпоргалку" по производительности различных коллекций в зависимости от операций с ними.
Готовы результаты по Guava, Apache Commons, Trove и стандартных коллекций Java.
Пока очень впечатлила Trove.
Что посоветуете еще потестить?
Результатами бенчмарков поделюсь.

UPD1:
Ремарка: Большое спасибо GabberBaby что познакомил с такой полезной тулзой как JMH.

Тесты пока проводились для листов и очередей с типом Object, а для map`ов<String, Obejct>.
По немного буду добавлять результаты для различных коллекций и действий с ними.
А вот и результаты бенчмарков (советую скачать с ЯД этот XML файл, а то если через сайт смотреть, то плохо отображается)


Скачать
__________________
Студия L2dev.su. Сборки Lindvior, Epilogue. ICQ 1817070. Skype wowan.sm

Последний раз редактировалось WoWan-SM; 31.12.2014 в 01:52.
WoWan-SM вне форума Отправить сообщение для WoWan-SM с помощью ICQ Отправить сообщение для WoWan-SM с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 24.12.2014, 12:14   #2
Пользователь

По умолчанию Re: Коллекции

Цитата:
Сообщение от WoWan-SM Посмотреть сообщение
Пишу "шпоргалку" по производительности различных коллекций в зависимости от операций с ними.
Готовы результаты по Guava, Apache Commons, Trove и стандартных коллекций Java.
Пока очень впечатлила Trove.
Что посоветуете еще потестить?
Результатами бенчмарков поделюсь.

HPPC от CarrotLabs? http://labs.carrotsearch.com/hppc.html Давно как-то тестили, но задача была другая - минимум памяти.
ProDev вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 24.12.2014, 14:13   #3
Аватар для Donatte
Герой

По умолчанию Re: Коллекции

aCis давно выбросили Trove т.к. никак не влияла на производительность.

Цитата:
Trove drop
- drop entirely usage of that library, as there is almost no impact on performance.
- basically :
- TIntObjectHashMap : Map<Integer, Object>
- TIntIntHashMap : Map<Integer, Integer>
- TShortObjectHashMap : Map<Short, Object>
- TIntArrayList : List<Integer>
__________________
Родился, живу и когда-нибудь умру.
Donatte вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 24.12.2014, 20:33   #4
Аватар для JavaMan

По умолчанию Re: Коллекции

Попробуй https://github.com/OpenHFT/Koloboke

PS если бенчмарки сделаны не с помощью jmh, то даже не вздумай их выкладывать.
JavaMan вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 25.12.2014, 01:00   #5
Аватар для WoWan-SM
Герой

Автор темы (Топик Стартер) Re: Коллекции

Цитата:
Сообщение от Donatte Посмотреть сообщение
aCis давно выбросили Trove т.к. никак не влияла на производительность.
И они сделали большую ошибку Т.к. по полученным результатам trove map с примитивным ключом (тем же Integer) дает очень большую все остальными коллекциям (в однопоточной среде, в многопоточной результаты могут быть другие)

Добавлено через 6 минут
Цитата:
Сообщение от GabberBaby Посмотреть сообщение
Попробуй https://github.com/OpenHFT/Koloboke

PS если бенчмарки сделаны не с помощью jmh, то даже не вздумай их выкладывать.
Завтра протестирую.
Слушай, а в чем преимущество тестировании на jmh? Тестирование в многопоточной среде и при как можно больших различных условий?
Вообще я пытался найти свежие результаты тестов хотя бы для однопоточной среды, но таковых нет нигде. Да и хотя бы с эллементарных тестов в однопоточной среде бы начать хотел для новичков.
__________________
Студия L2dev.su. Сборки Lindvior, Epilogue. ICQ 1817070. Skype wowan.sm

Последний раз редактировалось WoWan-SM; 25.12.2014 в 01:11. Причина: Добавлено сообщение
WoWan-SM вне форума Отправить сообщение для WoWan-SM с помощью ICQ Отправить сообщение для WoWan-SM с помощью Skype™ Ответить с цитированием
Непрочитано 25.12.2014, 01:07   #6
Аватар для Donatte
Герой

По умолчанию Re: Коллекции

В чём именно они ошиблись?
__________________
Родился, живу и когда-нибудь умру.
Donatte вне форума Ответить с цитированием
Непрочитано 25.12.2014, 02:45   #7
Аватар для JavaMan

По умолчанию Re: Коллекции

Цитата:
Сообщение от WoWan-SM Посмотреть сообщение
Слушай, а в чем преимущество тестировании на jmh? Тестирование в многопоточной среде и при как можно больших различных условий?
Вообще я пытался найти свежие результаты тестов хотя бы для однопоточной среды, но таковых нет нигде. Да и хотя бы с эллементарных тестов в однопоточной среде бы начать хотел для новичков.
Jmh позволяет делать бенчмарки в отрыве от различных хреновин, которые влияют на производительность кода. Вот тут можно посмотреть отличные примеры, которые объясняют как им пользоваться и почему надо делать бенчмарки с его помощью.

Я лично считаю, что нет необходимости использовать различные трувы и другие коллекции с примитивами, потому что по скорости они редко превосходят стандартные. Единственный вариант когда их можно использовать - это хранение действительно огромного кол-во записей в коллекциях, только в таких случаях можно заметить на сколько меньше примитивные коллекции хавают меньше памяти.
JavaMan вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 25.12.2014, 03:21   #8
Аватар для Deazer

По умолчанию Re: Коллекции

Ну в разных условиях , используются разные типы коллекций.
Вообще для этого есть микротесты.
Deazer вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 25.12.2014, 03:25   #9
Аватар для n3k0nation
Antihero

По умолчанию Re: Коллекции

Я уже писал тебе в скайпе, что никому не нужны тесты коллекций в синто-тесте на одном только потоке под одними условиями. Нужны полный микротесты под concurrency, thread-safe, etc...

По поводу какие еще библиотеки стоит добавить: Javolution, Napile (от VISTALL'a).
__________________
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
n3k0nation вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 25.12.2014, 10:15   #10
Аватар для WoWan-SM
Герой

Автор темы (Топик Стартер) Re: Коллекции

Цитата:
Сообщение от Pointer*Rage Посмотреть сообщение
Я уже писал тебе в скайпе, что никому не нужны тесты коллекций в синто-тесте на одном только потоке под одними условиями. Нужны полный микротесты под concurrency, thread-safe, etc...

По поводу какие еще библиотеки стоит добавить: Javolution, Napile (от VISTALL'a).
Ооооо... с разбаном тебя
__________________
Студия L2dev.su. Сборки Lindvior, Epilogue. ICQ 1817070. Skype wowan.sm
WoWan-SM вне форума Отправить сообщение для WoWan-SM с помощью ICQ Отправить сообщение для WoWan-SM с помощью Skype™ Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Плеер в никсах n3k0nation Операционные системы / Operating systems 4 15.03.2014 23:19


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 20:06. Часовой пояс GMT +3.

Вверх