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

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

Ответ
Опции темы
Непрочитано 02.04.2014, 20:38   #51
Аватар для Dolwin
Пользователь

По умолчанию Re: HikariCP - самый быстрый jdbc connection pool

Цитата:
Сообщение от GabberBaby Посмотреть сообщение
Как меряли производительность ? Я уверен, что ты просто что-то настроил криво либо использовал старую версию пула.
В любом случае я больше верю jmh бенчмаркам, чем пустословию без единого доказательства.
JMetter-ом естественно
Поверь мне, будучи Enterprise разработчком - очень трудно ошибиться в таких ситуациях, когда на проект пытаешься поставить новый CP
__________________
PLAYMMO.SU | OPENBNS | DARKOMENS
Dolwin вне форума Ответить с цитированием
Непрочитано 02.04.2014, 21:32   #52
Аватар для JavaMan

Автор темы (Топик Стартер) Re: HikariCP - самый быстрый jdbc connection pool

Цитата:
Сообщение от Dolwin Посмотреть сообщение
JMetter-ом естественно
Поверь мне, будучи Enterprise разработчком - очень трудно ошибиться в таких ситуациях, когда на проект пытаешься поставить новый CP
Я имел ввиду, чем ты измерял что hikaricp медленнее dbcp. Или это просто "на глазок", что есть очень тупо ?
А быть "enterprise разработчиком" значит работать с кучей легаси говна и всё.
JavaMan вне форума Ответить с цитированием
Непрочитано 03.04.2014, 10:39   #53
Пользователь

По умолчанию Re: HikariCP - самый быстрый jdbc connection pool

Цитата:
Сообщение от GabberBaby Посмотреть сообщение
Я имел ввиду, чем ты измерял что hikaricp медленнее dbcp. Или это просто "на глазок", что есть очень тупо ?
А быть "enterprise разработчиком" значит работать с кучей легаси говна и всё.
Это утверждение спорно. Например, WS - это легаси? SOA будем пилить на уровне io/nio и разбора XML на уровне "if node.equals("requestBody")"?

Вот уж где правда куча легаси и хардкода, так это, например, здесь:

Код:
				case 2: // Установка уже взятого саба (см case 5)
					html.append("<br>Переключить саб-класс:<br>");

					final int baseClassId = activeChar.getBaseClassId();

					if(playerClassList.size() < 2)
						html.append("У вас нет саб-классов для переключения, но вы можете добавить его прямо сейчас<br><a action=\"bypass _bbscareer;sub;1\">Добавить саб.</a>");
					else
					{
						html.append("Какой саб-класс вы желаете использовать?<br>");

						if(baseClassId == activeChar.getActiveClassId())
							html.append(HtmlUtils.htmlClassName(activeChar.getActiveClassId())
								+ " <font color=\"LEVEL\">(Базовый)</font><br><br>");
						else
							html.append("<a action=\"bypass _bbscareer;sub;5 " + baseClassId + "\">"
								+ HtmlUtils.htmlClassName(activeChar.getActiveClassId()) + "</a> "
								+ "<font color=\"LEVEL\">(Базовый)</font><br><br>");

						for(SubClass subClass : playerClassList.values())
						{
							if(subClass.isBase())
								continue;
							int subClassId = subClass.getClassId();

							if(subClassId == activeChar.getActiveClassId())
								html.append(HtmlUtils.htmlClassName(activeChar.getActiveClassId()) + "<br>");
							else
								html.append("<a action=\"bypass _bbscareer;sub;5 " + subClassId + "\">"
									+ HtmlUtils.htmlClassName(activeChar.getActiveClassId()) + "</a><br>");
						}
					}
					break;
А вот, к примеру, другой подход:
Код:
<tr>
    <td>
        {{ stringHolder.getNotNull(player, "community.career.subclass.control.can.switch.desc") }}
    </td>
</tr>
<tr>
    <td height="15"></td>
</tr>
<tr>
    <td>
        <center>
            <table>
                <tr>
                    {% for subclass in sortedSubclasses %}
                    {% if player.getActiveClassId != subclass.getClassId %}
                    {% set subcId = ["class.name.", subclass.getClassId]|join %}
                    <td>
                        <center>
                            <button value="{{ stringHolder.getNotNull(player, subcId) }}"
                                    action="bypass _bbscareer:subclass:switchto:{{ subclass.getClassId }}"
                                    width=150
                                    height=25
                                    back="L2UI_CT1.Button_DF_Down"
                                    fore="L2UI_CT1.Button_DF">
                        </center>
                    </td>
                    {% endif %}
                    {% endfor %}
                </tr>
            </table>
        </center>
    </td>
</tr>
Есть разница кода в плане читабельности и рефакторинг-пригодности? Вот ровно то же самое можно сказать про многие моменты. Почему вы так сразу отрицательно отзываетесь о более высокоуровневых решениях? Конечно, смотря что понимать под Enterprise.

По моему сугубо личному мнению, заниматься Enterpise - это не только пользовать какие-то стеки технологий и фреймворки. Это и тип мышления. А нахардкодить if-else блоков на 100500 случаев может каждый. Да и вообще я бы не делил Enterprise / не Enterpise, не совсем это верно. Можно вообще все на plain java сделать, вопрос только сколько вы времени потратите и сколько выграете в оверхеде? А главное, как вы потом это будете сопровождать? Очень любопытно посмотреть как сделать без фреймов SOA/WS/WS-Security, например, да еще и накрыть СКЗИ сверху. С учетом сегодняшнего развития аппаратной части этот вопрос очень спорен. Мы же не под микроконтроллеры и какие-то кастомные платформы пишем код, где каждый байт на счету.
ProDev вне форума Ответить с цитированием
Непрочитано 03.04.2014, 17:54   #54
Аватар для JavaMan

Автор темы (Топик Стартер) Re: HikariCP - самый быстрый jdbc connection pool

Цитата:
Сообщение от ProDev Посмотреть сообщение
Это утверждение спорно. Например, WS - это легаси? SOA будем пилить на уровне io/nio и разбора XML на уровне "if node.equals("requestBody")"?

Вот уж где правда куча легаси и хардкода, так это, например, здесь:

Код:
				case 2: // Установка уже взятого саба (см case 5)
					html.append("<br>Переключить саб-класс:<br>");

					final int baseClassId = activeChar.getBaseClassId();

					if(playerClassList.size() < 2)
						html.append("У вас нет саб-классов для переключения, но вы можете добавить его прямо сейчас<br><a action=\"bypass _bbscareer;sub;1\">Добавить саб.</a>");
					else
					{
						html.append("Какой саб-класс вы желаете использовать?<br>");

						if(baseClassId == activeChar.getActiveClassId())
							html.append(HtmlUtils.htmlClassName(activeChar.getActiveClassId())
								+ " <font color=\"LEVEL\">(Базовый)</font><br><br>");
						else
							html.append("<a action=\"bypass _bbscareer;sub;5 " + baseClassId + "\">"
								+ HtmlUtils.htmlClassName(activeChar.getActiveClassId()) + "</a> "
								+ "<font color=\"LEVEL\">(Базовый)</font><br><br>");

						for(SubClass subClass : playerClassList.values())
						{
							if(subClass.isBase())
								continue;
							int subClassId = subClass.getClassId();

							if(subClassId == activeChar.getActiveClassId())
								html.append(HtmlUtils.htmlClassName(activeChar.getActiveClassId()) + "<br>");
							else
								html.append("<a action=\"bypass _bbscareer;sub;5 " + subClassId + "\">"
									+ HtmlUtils.htmlClassName(activeChar.getActiveClassId()) + "</a><br>");
						}
					}
					break;
А вот, к примеру, другой подход:
Код:
<tr>
    <td>
        {{ stringHolder.getNotNull(player, "community.career.subclass.control.can.switch.desc") }}
    </td>
</tr>
<tr>
    <td height="15"></td>
</tr>
<tr>
    <td>
        <center>
            <table>
                <tr>
                    {% for subclass in sortedSubclasses %}
                    {% if player.getActiveClassId != subclass.getClassId %}
                    {% set subcId = ["class.name.", subclass.getClassId]|join %}
                    <td>
                        <center>
                            <button value="{{ stringHolder.getNotNull(player, subcId) }}"
                                    action="bypass _bbscareer:subclass:switchto:{{ subclass.getClassId }}"
                                    width=150
                                    height=25
                                    back="L2UI_CT1.Button_DF_Down"
                                    fore="L2UI_CT1.Button_DF">
                        </center>
                    </td>
                    {% endif %}
                    {% endfor %}
                </tr>
            </table>
        </center>
    </td>
</tr>
Есть разница кода в плане читабельности и рефакторинг-пригодности? Вот ровно то же самое можно сказать про многие моменты. Почему вы так сразу отрицательно отзываетесь о более высокоуровневых решениях? Конечно, смотря что понимать под Enterprise.

По моему сугубо личному мнению, заниматься Enterpise - это не только пользовать какие-то стеки технологий и фреймворки. Это и тип мышления. А нахардкодить if-else блоков на 100500 случаев может каждый. Да и вообще я бы не делил Enterprise / не Enterpise, не совсем это верно. Можно вообще все на plain java сделать, вопрос только сколько вы времени потратите и сколько выграете в оверхеде? А главное, как вы потом это будете сопровождать? Очень любопытно посмотреть как сделать без фреймов SOA/WS/WS-Security, например, да еще и накрыть СКЗИ сверху. С учетом сегодняшнего развития аппаратной части этот вопрос очень спорен. Мы же не под микроконтроллеры и какие-то кастомные платформы пишем код, где каждый байт на счету.
Да я ничего не утверждаю, мне самому нравится использовать фреймворки вместо велосипедов, просто меня немного разозлило, что человек ворвался в трид с криками, что hikaricp - медленное говно, без каких-либо пруфов, когда в это же время любой человек может запустить бенчмарки, которые валяются в гитхабе и убедится, что действительно быстрее других коннект пулов.

Использовать шаблонизатор для запила хтмлок кстати тоже такое не очень дело я считаю, так как каждому новому разрабу надо будет учиться синтаксису этого шаблонизатора. Обычный хтмль с реплейсом нормально заезжают, учитывая, что при переходе на новые хроники можно будет тупо взять хтмлки с птски и всё будет работать. Но это конечно касается только л2 серверов.
JavaMan вне форума Ответить с цитированием
Непрочитано 03.04.2014, 17:58   #55
Пользователь

По умолчанию Re: HikariCP - самый быстрый jdbc connection pool

Цитата:
Сообщение от GabberBaby Посмотреть сообщение
Да я ничего не утверждаю, мне самому нравится использовать фреймворки вместо велосипедов, просто меня немного разозлило, что человек ворвался в трид с криками, что hikaricp - медленное говно, без каких-либо пруфов, когда в это же время любой человек может запустить бенчмарки, которые валяются в гитхабе и убедится, что действительно быстрее других коннект пулов.

Использовать шаблонизатор для запила хтмлок кстати тоже такое не очень дело я считаю, так как каждому новому разрабу надо будет учиться синтаксису этого шаблонизатора. Обычный хтмль с реплейсом нормально заезжают, учитывая, что при переходе на новые хроники можно будет тупо взять хтмлки с птски и всё будет работать. Но это конечно касается только л2 серверов.
Тут прокомментировать не могу - HikariCP даже опробовать не успел. Из темы так и не понял, уловил ли кто на боевом решении разницу по производительности (уловил в смысле не "на глазок", а объективно по различным метрикам).

Да, выше две крайности. Replace вполне хорошо подходит, но только не тот ад, что выше в примере. Мало того, что это тяжело рефакторится и сопровождается, это еще и не локализовано по-нормальному. То есть сейчас взять и перевести так просто не получится, да и делегировать эту задачу кому-то из датапакеров тоже так просто не выйдет. В общем, неважно что используется для решения задачи, главное, чтобы оно было эстетично и красиво
ProDev вне форума Ответить с цитированием
Непрочитано 03.04.2014, 18:03   #56
Аватар для JavaMan

Автор темы (Топик Стартер) Re: HikariCP - самый быстрый jdbc connection pool

Цитата:
Сообщение от ProDev Посмотреть сообщение
Тут прокомментировать не могу - HikariCP даже опробовать не успел. Из темы так и не понял, уловил ли кто на боевом решении разницу по производительности (уловил в смысле не "на глазок", а объективно по различным метрикам).
Я когда профилировал заметил, что время жизни коннектов к бд стало меньше (в yourkit профайлере есть такая статистика) в среднем в 10 раз. До этого был bonecp.

Цитата:
Сообщение от ProDev Посмотреть сообщение
В общем, неважно что используется для решения задачи, главное, чтобы оно было эстетично и красиво
Кэп.
JavaMan вне форума Ответить с цитированием
Непрочитано 03.04.2014, 18:34   #57
Пользователь

По умолчанию Re: HikariCP - самый быстрый jdbc connection pool

Цитата:
Сообщение от GabberBaby Посмотреть сообщение
Я когда профилировал заметил, что время жизни коннектов к бд стало меньше (в yourkit профайлере есть такая статистика) в среднем в 10 раз. До этого был bonecp.



Кэп.

Уже показатель. А BoneCP, в свою очередь, по бенчам быстрее уже устоявшегося commons-dbcp. Вопрос только в стабильности на продакшене, кто-то уже имел опыт внедрения?

Спасибо, кэп
ProDev вне форума Ответить с цитированием
Непрочитано 03.04.2014, 20:50   #58
Аватар для VISTALL
Illussion is real

По умолчанию Re: HikariCP - самый быстрый jdbc connection pool

Цитата:
Сообщение от ProDev Посмотреть сообщение
Есть разница кода в плане читабельности и рефакторинг-пригодности? Вот ровно то же самое можно сказать про многие моменты. Почему вы так сразу отрицательно отзываетесь о более высокоуровневых решениях? Конечно, смотря что понимать под Enterprise.

По моему сугубо личному мнению, заниматься Enterpise - это не только пользовать какие-то стеки технологий и фреймворки. Это и тип мышления. А нахардкодить if-else блоков на 100500 случаев может каждый. Да и вообще я бы не делил Enterprise / не Enterpise, не совсем это верно. Можно вообще все на plain java сделать, вопрос только сколько вы времени потратите и сколько выграете в оверхеде? А главное, как вы потом это будете сопровождать? Очень любопытно посмотреть как сделать без фреймов SOA/WS/WS-Security, например, да еще и накрыть СКЗИ сверху. С учетом сегодняшнего развития аппаратной части этот вопрос очень спорен. Мы же не под микроконтроллеры и какие-то кастомные платформы пишем код, где каждый байт на счету.
Шаблонизатор в диалогах это хорошая вещь. Могу сказать Вы не первый кто додумался юзать шаблонизатор в диалогах.

Могу сказать ещё, в далеком прошлом, я переписал весь код Овера, который отвечает за Append в диалогах.

И не нужно было хардкодить. И не только это)
__________________
consulo.io - Consulo - multi-language IDE
VISTALL вне форума Ответить с цитированием
Непрочитано 03.04.2014, 20:54   #59
Аватар для ANZO
Разработчик BDO Emu

По умолчанию Re: HikariCP - самый быстрый jdbc connection pool

Шаблонизаторы в HTML Николай уже давно юзал у себя, даже вот валяется на винте пруф-стаб:
http://rghost.ru/53747736

Другое дело, что они нафиг не нужны, если делается упор на оф-лайк и юзается эмуляция родных интепретаторов байпасов оф-сервера. Админка (единственный повод иметь кастом хтмл-ки в клиенте) по моему скромному мнению вообще должна находиться вне клиента в виде отдельной тулзы от греха подальше.
ANZO вне форума Отправить сообщение для ANZO с помощью ICQ Отправить сообщение для ANZO с помощью Skype™ Ответить с цитированием
Непрочитано 03.04.2014, 21:19   #60
Пользователь

По умолчанию Re: HikariCP - самый быстрый jdbc connection pool

Цитата:
Сообщение от VISTALL Посмотреть сообщение
Шаблонизатор в диалогах это хорошая вещь. Могу сказать Вы не первый кто додумался юзать шаблонизатор в диалогах.

Могу сказать ещё, в далеком прошлом, я переписал весь код Овера, который отвечает за Append в диалогах.

И не нужно было хардкодить. И не только это)
Я вовсе не к тому, что это какое-то новшество, скорее, к вопросу использования различных тулкитов. Можно и на plain java сделать красиво, но в гибкости все равно будет просадка.

Цитата:
Сообщение от ANZO Посмотреть сообщение
Шаблонизаторы в HTML Николай уже давно юзал у себя, даже вот валяется на винте пруф-стаб:
http://rghost.ru/53747736

Другое дело, что они нафиг не нужны, если делается упор на оф-лайк и юзается эмуляция родных интепретаторов байпасов оф-сервера. Админка (единственный повод иметь кастом хтмл-ки в клиенте) по моему скромному мнению вообще должна находиться вне клиента в виде отдельной тулзы от греха подальше.
Спору нет, это вопрос исключительно удобства. Какие-то вещи, согласитесь, удобнее сделать на шаблонах, коммьюнити - яркий тому пример. Чистый html тоже хорошо, но вот только не так, как это в примере выше - это же невозможно разобрать, что и как, слишком запутано.

Спасибо вам за комментарии, интересно пообщаться
ProDev вне форума Ответить с цитированием
Ответ


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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PvPGN для новичков nelegal Создание сервера 225 22.01.2014 17:29
одна и та же проблема на 3 серверах BimBom Lineage II 34 27.12.2011 01:28
Установка на La2Base KOPEIII Работа с геодатой 8 29.07.2010 09:55
Серверр выкидывает игроков kolovratt Aion 6 20.07.2010 10:51
баги и недочёты сервака Devilop Серверная часть 21 03.06.2010 23:50


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

Вверх