Сообщений: 134
Тем: 0
Зарегистрирован: Apr 2012
Репутация:
277
Aquanox Написал:Netty ChannelBuffer в разы превосходит BB. Экстремально простая запись чтение, навигация по буферу. Основа сети тоже на Netty у меня например. А вот Netty не проникся, а вот нормально написанное нио, отрабатывает прекрасно
Сообщений: 1,660
Тем: 9
Зарегистрирован: Feb 2009
Репутация:
10,142
Ronn-l2f Написал:Ну в итоге полностью с 0 была и переписана, только крипт остался (:
Кстати, ваши колеги мб и говорят, что с 0 вся переписали но на самом деле это же не так, видно это по вашему скрину)))
P.S. Сказано не в упрек)
Цитата:Честно говоря, не нашел в шаре ничего интересного. Как минимум потому - что даже взяв за основу эти исходники, придется как минимум переписать сотую часть всей работы.
Без условно, переписывать здесь нужно все.
Но все же есть вещи которые будут полезными.
Цитата:а есть что-то эффективнее ByteBuffer'а? другое дело что в сурсах диагода, крайне неэффективная запись write*S(), что естественно было исправлено + крайне тормознутое НИО в целом, который пришлось тоже переписывать
на счет тормознутое это довольно таки спорный вопрос, на нем сидят все л2 сборки и никто не жалуется, другое дело, что у меня там куча лишнего была, а так же через Ж сделанного)
Сообщений: 134
Тем: 0
Зарегистрирован: Apr 2012
Репутация:
277
DiagoD Написал:Кстати, ваши колеги мб и говорят, что с 0 вся переписали но на самом деле это же не так, видно это по вашему скрину))) переписывал я
DiagoD Написал:на счет тормознутое это довольно таки спорный вопрос, на нем сидят все л2 сборки и никто не жалуется, другое дело, что у меня там куча лишнего была, а так же через Ж сделанного) при writeDS() конечно создавать промежуточный массив байтов + байтбуфер в который записывать в обратном порядке, а затем его вставлять в основной, это очень эффективно, ок
Сообщений: 1,660
Тем: 9
Зарегистрирован: Feb 2009
Репутация:
10,142
04-29-2012, 12:29 PM
(Сообщение последний раз редактировалось: 04-29-2012, 05:53 PM DiagoD.)
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));
Сообщений: 134
Тем: 0
Зарегистрирован: Apr 2012
Репутация:
277
DiagoD Написал:вот это я и имел виду когда писал а как насчет исполнение клиентских пакетов? или про запись серверных?
твой подход к накапливанию клиентских пакетов перед исполнением и запись по 1 серверному пакету из очереди на клиента за проход, сразу оукалось при более менее частом обмене пакетов
П.С. не знаю что там за великие л2 сборки работают по той же схеме, но у л2ф нио куда шустрее, а у оверворда вообще нетти
Сообщений: 66
Тем: 1
Зарегистрирован: Dec 2011
Репутация:
240
У Overworld на Netty разве что Telnet сервер и то собран он из примеров на офф. сайте netty.io.
(По крайней мере в шарных исходах)
Сообщений: 1,660
Тем: 9
Зарегистрирован: Feb 2009
Репутация:
10,142
04-29-2012, 12:47 PM
(Сообщение последний раз редактировалось: 04-29-2012, 12:49 PM DiagoD.)
Ronn-l2f Написал:твой подход
Это не мой подход.
Все НИО я взял с л2п и переделал его под Теру, само собой, что напихал свои изжопы там и перевернул некоторые моменты для совместимости.
Добавлено через 2 минуты
Посмотрел овер, что-то не увидел там нети.
Сообщений: 134
Тем: 0
Зарегистрирован: Apr 2012
Репутация:
277
DiagoD Написал:Это не мой подход.
Все НИО я взял с л2п и переделал его под Теру, само собой, что напихал свои изжопы там и перевернул некоторые моменты для совместимости.
Добавлено через 2 минуты
Посмотрел овер, что-то не увидел там нети. Ну с овером видно ошибся, что не отменяет выше сказанное.
Сообщений: 438
Тем: 4
Зарегистрирован: Apr 2011
Репутация:
839
Aquanox Написал:Netty ChannelBuffer в разы превосходит BB. Экстремально простая запись чтение, навигация по буферу. Основа сети тоже на Netty у меня например.
из за универсальности Netty там, сначала используется какой то хитрый пул натив буферов, потом из него данные копируются в ченел буфер и только потом ченел буфер передается в хендлер. в итоге куча мусора в памяти и бесконечная работа бедного GC, теоретически G1 может улучшить ситуацию.
l2jfree | M.O.R.F. | A.P.S. | Aion | GW2 | BnS
Сообщений: 134
Тем: 0
Зарегистрирован: Apr 2012
Репутация:
277
hex1r0 Написал:из за универсальности Netty там, сначала используется какой то хитрый пул натив буферов, потом из него данные копируются в ченел буфер и только потом ченел буфер передается в хендлер. в итоге куча мусора в памяти и бесконечная работа бедного GC, теоретически G1 может улучшить ситуацию. А мусорщика грузить лишней едой не есть хорошо, имхо
|