170 похожих чатов

Здравствуйте, хочу поделится интересной ситуацией, в моей игрушке каждый снаряд

просчитывается на сервере, и после 5+ одновременно выпущенных снарядов начинало сильно лагать. Я думал проблема в производительности, и частично это оказалось так. Дело было в том, что я выводил позицию каждого снаряда в консоли каждый тик. Как только я это убрал работать стало просто великолепно. Неужели console.log так сильно режет производительность?

29 ответов

26 просмотров

да

Dlazder- Автор вопроса
Dmitriy Knyaginin
да

Странно что об этом никто не говорит) Я бы сам не подумал что это прям так сильно влияет)

Сам расчёты реализуешь или физический движок используешь?

Dlazder
Странно что об этом никто не говорит) Я бы сам не ...

хочешь логи есть перенаправление в файл, ну или в кафку

Dlazder- Автор вопроса
Антон Горбачёв
Сам расчёты реализуешь или физический движок испол...

Сам. У меня там простейшая 2д графика. Я толком не слышал про готовые движки...

Dlazder- Автор вопроса
Антон Горбачёв
Их много, Box2D, Matter.js, Rapier, Bullet и тд.

Спасибо, надо будет посмотреть. Потому что самому ничего серьезного не написать если просто реализовывать игровые механики а не изначально пытаться сделать движок, и на нем уже строить...

У тебя снаряды удалялись когда нибудь? И ввод вывод может резать производительность, да.

Dlazder
Спасибо, надо будет посмотреть. Потому что самому ...

Matter.js проще всего, если для клиентской части не используется фреймворк в котором по дефолту другой движок встроен

Dlazder
А причем тут фреймворк?

В некоторых фреймворков может быть уже встроен движок, а встроенный обычно проще юзать

Вывод в консоль всегда тормозит

если мне память не изменяет, вывод в консоль через console.log - блокирующая операция, поэтому будут фризы.. могу ошибаться, поправьте

Dlazder- Автор вопроса
Aleksandr Vyatkin
если мне память не изменяет, вывод в консоль через...

Если я не ошибаюсь, зависит от ОС, вроде, в доке ноды написано, что на windows вывод в stdout асинхронный, на Linux нет.

Danil Kincharov
Если я не ошибаюсь, зависит от ОС, вроде, в доке н...

хм.. я подумал, а если вывод в консоль будет неблокирующим, то в выводе же может быть вообще чушь редкостная, если логировать всякую асинхронщину

Aleksandr Vyatkin
хм.. я подумал, а если вывод в консоль будет небло...

Я не эксперт по выводам в консоль, но выскажу предположение, что если stream, в который ты пишешь один и тот же, то порядок вывода нарушаться не должен

Danil Kincharov
Если я не ошибаюсь, зависит от ОС, вроде, в доке н...

Writes may be synchronous depending on what the stream is connected to and whether the system is Windows or POSIX: Files: synchronous on Windows and POSIX TTYs (Terminals): asynchronous on Windows, synchronous on POSIX Pipes (and sockets): synchronous on Windows, asynchronous on POSIX

а ты попробуй через пино логать и потом скажи насколько улучшилась ситуация

Там понятное дело что будет в разы лучше, так как там логи копятся и батчем выгружаются обычно)

Dlazder- Автор вопроса
Anton K.
а ты попробуй через пино логать и потом скажи нас...

Да мне нет необходимости логать, просто убрал и все)

Антон Горбачёв
Там понятное дело что будет в разы лучше, так как ...

да вроде не копятся так чтобы сильно ну могут задержаться да на пару секунд но потом по timestamp можно понять где какая последоваттельность

Антон Горбачёв
И пино вроде в браузере не работает?

ну он же писал что на сервере логал

Anton K.
ну он же писал что на сервере логал

А, может, помню что до этого про браузер рисали

Anton K.
да вроде не копятся так чтобы сильно ну могут заде...

Я к тому, что каждый лог не пишется по отдельности в стдаут, а они все разом отгружаются одним выводом обычно

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта