Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Шара Исходников эмулятора Tera от Diagod
#21
Aquanox Написал:Netty ChannelBuffer в разы превосходит BB. Экстремально простая запись чтение, навигация по буферу. Основа сети тоже на Netty у меня например.
А вот Netty не проникся, а вот нормально написанное нио, отрабатывает прекрасно
Ответ
#22
Ronn-l2f Написал:Ну в итоге полностью с 0 была и переписана, только крипт остался (:

Кстати, ваши колеги мб и говорят, что с 0 вся переписали но на самом деле это же не так, видно это по вашему скрину)))

P.S. Сказано не в упрек)


Цитата:Честно говоря, не нашел в шаре ничего интересного. Как минимум потому - что даже взяв за основу эти исходники, придется как минимум переписать сотую часть всей работы.
Без условно, переписывать здесь нужно все.
Но все же есть вещи которые будут полезными.


Цитата:а есть что-то эффективнее ByteBuffer'а? другое дело что в сурсах диагода, крайне неэффективная запись write*S(), что естественно было исправлено + крайне тормознутое НИО в целом, который пришлось тоже переписывать
на счет тормознутое это довольно таки спорный вопрос, на нем сидят все л2 сборки и никто не жалуется, другое дело, что у меня там куча лишнего была, а так же через Ж сделанного)
Ответ
#23
DiagoD Написал:Кстати, ваши колеги мб и говорят, что с 0 вся переписали но на самом деле это же не так, видно это по вашему скрину)))
переписывал я
DiagoD Написал:на счет тормознутое это довольно таки спорный вопрос, на нем сидят все л2 сборки и никто не жалуется, другое дело, что у меня там куча лишнего была, а так же через Ж сделанного)
при writeDS() конечно создавать промежуточный массив байтов + байтбуфер в который записывать в обратном порядке, а затем его вставлять в основной, это очень эффективно, ок
Ответ
#24
Ronn-l2f Написал:переписывал я

при writeDS() конечно создавать промежуточный массив байтов + байтбуфер в который записывать в обратном порядке, а затем его вставлять в основной, это очень эффективно, ок

вот это я и имел виду когда писал
Цитата:другое дело, что у меня там куча лишнего была, а так же через Ж сделанного

Само собой, что то было лишнее.

На замену этому:
Цитата:ByteBuffer siz = ByteBuffer.wrap(new byte[4]).order(ByteOrder.LITTLE_ENDIAN);
siz.clear();
siz.putInt(value);
siz.flip();
getByteBuffer().put(siz);

будет идеальным вариантом

Код:
getByteBuffer().put(Integer.reverse(value));
Ответ
#25
DiagoD Написал:вот это я и имел виду когда писал
а как насчет исполнение клиентских пакетов? или про запись серверных?
твой подход к накапливанию клиентских пакетов перед исполнением и запись по 1 серверному пакету из очереди на клиента за проход, сразу оукалось при более менее частом обмене пакетов
П.С. не знаю что там за великие л2 сборки работают по той же схеме, но у л2ф нио куда шустрее, а у оверворда вообще нетти
Ответ
#26
У Overworld на Netty разве что Telnet сервер и то собран он из примеров на офф. сайте netty.io.
(По крайней мере в шарных исходах)
Ответ
#27
Ronn-l2f Написал:твой подход

Это не мой подход.
Все НИО я взял с л2п и переделал его под Теру, само собой, что напихал свои изжопы там и перевернул некоторые моменты для совместимости.

Добавлено через 2 минуты
Посмотрел овер, что-то не увидел там нети.
Ответ
#28
DiagoD Написал:Это не мой подход.
Все НИО я взял с л2п и переделал его под Теру, само собой, что напихал свои изжопы там и перевернул некоторые моменты для совместимости.

Добавлено через 2 минуты
Посмотрел овер, что-то не увидел там нети.
Ну с овером видно ошибся, что не отменяет выше сказанное.
Ответ
#29
Aquanox Написал:Netty ChannelBuffer в разы превосходит BB. Экстремально простая запись чтение, навигация по буферу. Основа сети тоже на Netty у меня например.

из за универсальности Netty там, сначала используется какой то хитрый пул натив буферов, потом из него данные копируются в ченел буфер и только потом ченел буфер передается в хендлер. в итоге куча мусора в памяти и бесконечная работа бедного GC, теоретически G1 может улучшить ситуацию.
l2jfree | M.O.R.F. | A.P.S. | Aion | GW2 | BnS
Ответ
#30
hex1r0 Написал:из за универсальности Netty там, сначала используется какой то хитрый пул натив буферов, потом из него данные копируются в ченел буфер и только потом ченел буфер передается в хендлер. в итоге куча мусора в памяти и бесконечная работа бедного GC, теоретически G1 может улучшить ситуацию.
А мусорщика грузить лишней едой не есть хорошо, имхо
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  [Продажа] Ретайл серверных файлов TERA SilverSmoke 7 3,677 10-08-2020, 01:16 PM
Последний пост: SilverSmoke
  Где можно найти старый клиент TERA? CozyMucus 0 2,402 10-06-2020, 09:19 PM
Последний пост: CozyMucus
  TERA @ C++ TieLay 3 5,223 08-15-2020, 02:44 PM
Последний пост: BloodVais
  TERA с 1 Июня 2020г. больше не в России TieLay 0 2,717 05-22-2020, 03:39 PM
Последний пост: TieLay
  Эмулятор с поддержкой TERA EU 93.02 TieLay 0 3,325 05-12-2020, 10:55 AM
Последний пост: TieLay
  TERA - развитие эмулятора не остановлено TieLay 4 6,801 10-17-2016, 03:01 AM
Последний пост: Ugly
  Как включить геодату на Tera Shock Froust 3 4,398 07-27-2016, 01:17 PM
Последний пост: APKO
  Шара сурсы Tera C# LineOFWar 85 40,052 06-05-2016, 02:40 AM
Последний пост: SkyWard
  TERA @ JAVA TieLay 102 44,354 05-04-2016, 10:01 PM
Последний пост: TieLay
  [Share] TERA DataCenter Decryptor h4x0r 23 19,783 08-26-2015, 10:27 AM
Последний пост: flopix

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)