1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

[Помогите] serverresponce по TCP, C++

Тема в разделе "Альтернативные серверные платформы", создана пользователем Vlad_007WOLFYATINA, 13 ноя 2020.

  1. Nikolai_Faint

    Nikolai_Faint Активный участник Пользователь

    Баллы:
    96
    Ну да, машина исполняет лишь абстрактный код который ты же сам ей и пишешь. В GCC куча паттернов на разные ситуации чтобы выбрать лучшую ветвь исполнения кода. Компиляторы писали отнюдь не самые глупые люди, и они осознавали кучу проблем с которыми придётся столкнутся, благо IDE отсеивает кучу проблем еще на моменте их создания. Прелесть компилятора в том что он понимает чего от него хотят, и знает как лучше реализовать весь твой код в машинной интерпретации. Почитай на досуге как работает JustInTime compilation.
     
    Последнее редактирование: 14 ноя 2020
  2. Автор темы
    Vlad_007WOLFYATINA

    Vlad_007WOLFYATINA Активный участник Пользователь

    Баллы:
    66
    Я уже понял что нужно использовать, мне помогли на иностранном форуме
     
  3. Konstantin773

    Konstantin773 Старожил Пользователь

    Баллы:
    153
    Skype:
    Konstantin77313
    Имя в Minecraft:
    K773
    Зачем что-то переписывать на других языках. Довести до ума жабовские ядра и дело в шляпе. Достаточно победить чрезмерное создание объектов, от чего сократятся частота и длительность GC пауз, затюнить JIT и сделать некоторые критические участки кода SSE/AVX Friendy. Разница в производительности с низкоуровневыми ЯП будет минимальна
    Если беспокоит большое потребление памяти, то SubstrateVM в помощь

    Сам занимался оптимизацией всего и вся. Результаты года работы таковы
    Клиент: 15мб кучи в меню, 30-40мб в игре при средней дальности прорисовки. Allocation на уровне 1-2мб в секунду. Запуск за полсекунды до меню. И 128мб хватает за глаза
    Сервер: т.к. чанки особо не использую, потому на запуске 10мб и при 10к миров на одном сервере всего 250мб. И по полметра на игрока. Как итог, теоретически на одном сервере можно 1к игроков тянуть всего на гиге оперы. Производительность главного потока на высоте, а сетевые вытянут только если не собирать много игроков в одном месте
    P.S: Не учитывается offheap, выделяемый Netty и для нужд OpenGL/OpenAL
    Ну а чанки - это чанки. Они и при других ЯП в памяти не будут занимать меньше. Разве что, пилить гораздо более компактные структуры
     
    Последнее редактирование: 14 ноя 2020
  4. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Без чанков это уже кирпич, а не майнкрафт. Ибо вся суть майнкрафта = песочница. То уже какой то раст кубический.
     
  5. Nikolai_Faint

    Nikolai_Faint Активный участник Пользователь

    Баллы:
    96
    SSE/AVX предназначены для конкретных ситуаций и имеют ограниченный набор инструкций. В то время как SSE работает с огромными регистрами, AVX в большей части нужен для вычислений с плавающей точкой.

    Смысл от вашего "Нужно пихать его туда/Нужно подключить это тут"? Разработчики майна которые дружат с нативкой прекрасно знают что и где нужно делать, особенно когда в большинстве случаев выручает JiT.
    Еще можно заюзать OpenJ9.
     
  6. xDev789

    xDev789 Активный участник

    Баллы:
    61
    Накосячил значит где-то, кстати, json - такая же строка, с префиксом в виде длины в вар-инте
     
  7. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    И прощай производительность.
     

Поделиться этой страницей