@JSlang

Страница 998 из 2237
Ywein
23.06.2017
20:50:57
Дмитрий
23.06.2017
20:52:08
console.log — задержка на 50-80 мс — вылетаешь за отведеный интервал для генерации ключа (тупо рассинхронизируешься по часам) — сервер твою авторизацию заворачивает

В итоге там сейчас убер-логгер)

Winni
23.06.2017
20:52:39
Починил его стерев один неудачный console.log))
Ты уверен что твой код не менялся при сжатии? Возможно из-за console.log у тебя терялась точка с запятой.

Google
Дмитрий
23.06.2017
20:53:03
У меня вообще сжатия нет

Более того, я даже перевел компиляцию в режим с async, чтобы не терять время и стэк в генераторах

Дмитрий
23.06.2017
20:53:43
Ага

Winni
23.06.2017
20:53:44
У меня вообще сжатия нет
А используешь там флоу или другой сахар или стрикт мод?

Дмитрий
23.06.2017
20:54:23
Самый люто дичайший момент был — когда у меня падала авторизация от того, что заменял промис на async ??

Дмитрий
23.06.2017
20:55:07
Это жесть, когда ты видишь фигню, которая просто не может происходить, но однако же ты её видишь своими глазами уже пол месяца

А используешь там флоу или другой сахар или стрикт мод?
В коде ошибок нет, проблема именно в наличии консоли в особо неудачном для этого месте) Естественно проект обложен eslint, flow и т.д.

Дмитрий
23.06.2017
20:56:43
В итоге там сейчас убер-логгер)
Короче в логгере сейчас мемоизация мета-данных события, асинхронный вывод, задержка, чтобы не мешать обсчёту остальных данных и два уровня буферизации сообщений

Google
Дмитрий
23.06.2017
20:57:33
У меня вообще транспиляция весьма слабая — убираю флоу типы, class props, object rest, конвертирую for of и const в var

? гриб
23.06.2017
20:58:40
Winni
23.06.2017
20:58:48
Короче в логгере сейчас мемоизация мета-данных события, асинхронный вывод, задержка, чтобы не мешать обсчёту остальных данных и два уровня буферизации сообщений
И потом у нас пользователь запускает Ashes of Sinпularity, альтабается и серфит нет, тут твоя прилажуха рассинхронизируется еще не загрузившись.

? гриб
23.06.2017
20:58:49
Асинх

Winni
23.06.2017
20:59:59
Сильный фронтенд для стабого бэкенда как по мне получился.

Ха, у меня скорость загрузки со стима режется скоростью записи на диск

Дмитрий
23.06.2017
21:01:03
Я именно для этого дважды буферизирую массив сообщений перед записью, чтобы обработка данных была как можно дальше от критичных вычислений

Дмитрий
23.06.2017
21:01:57
Фактически, это своего рода низкий приоритет

По очереди с паузой между ними
Наоборот, так у тебя всё будет стабильно виснуть

Дмитрий
23.06.2017
21:03:40
ну у меня не совсем нодовский проект ? Но я просто решил что вертел всех тех, кто пытается запустить такие штуке на допотопных нодах и браузерах)

Alex
23.06.2017
21:05:05
вынеси логирование в воркер

ну а вообще звучит смешно - рассинхрон какой то при авторизации

если авторизация такой пиздец по процессу - делай ее блокирующей весь тред чо

Дмитрий
23.06.2017
21:08:07
По очереди с паузой между ними
Сообщения отправляются из вызовов логгера и собираются в первичный буфер, небольшой, на 50-100 сообщений, чтобы не сильно нагружать ноду непосредственно во время вызовов. После его заполнения он резко препроцессится весь, целиком в один проход, потому что так будет быстрее чем регулярно дёргать обработки по одной. После препроцессинга сообщения отправляются во вторичный буфер, большой, который очищается раз в пару-тройку секунд и так же резко производит вывод сразу пачкой, потратив на сотни сообщений всего одну итерацию вывода в консоль

ну а вообще звучит смешно - рассинхрон какой то при авторизации
Что смешного в авторизации, привязанной к точному значению времени?

Google
Alex
23.06.2017
21:09:28
как тебе выше сказали - по разным причинам фокус с вкладки уйдет и все ломаетс

Alex
23.06.2017
21:10:21
ты никогда не смотрел что будет если приложение на аутпут спамит в неактивной вкладке?

Дмитрий
23.06.2017
21:10:45
У юзера вообще этих логов быть не должно

В этом и смысл глобов в спеке debug

Alex
23.06.2017
21:11:05
так а зачем ты на деве это пихаешь в основной процесс

Дмитрий
23.06.2017
21:11:30
Какой прод, какой браузер вообще?

Дебаг и консоль ноды

Alex
23.06.2017
21:11:54
ну и все это в 1 треде так?

Дмитрий
23.06.2017
21:12:00
Нет конечно

Alex
23.06.2017
21:12:28
ты ж сам говоришь что console.log у тебя отжирается время от event loop'а

Alex
23.06.2017
21:13:38
ты либо в 1 треде логи выводишь с работой приложухи, либо это магия какая то :)

Дмитрий
23.06.2017
21:14:40
Я уже описал выше, у меня сейчас всё работает прекрасно при крайне высоких потоках логов0

Alex
23.06.2017
21:15:11
ты проблему то не решил фактически - просто у тебя теперь тачка вывозит

Дмитрий
23.06.2017
21:15:44
Тысяча io в лог — тысяча раз по 100 мс задержки

один блок вывода — один раз по 100 мс задержки на тысячу сообщений

Есть разница?)

Alex
23.06.2017
21:16:50
а теперь делай все кухню с сообщениями и логами отдельным тредом

и не будет у тебя этой задержки

Google
Alex
23.06.2017
21:17:26
для этого воркеры так то и делали

Дмитрий
23.06.2017
21:17:26
А потом отлаживать ещё и его, супер

Alex
23.06.2017
21:17:33
для процессинга

что отлаживать то?

Дмитрий
23.06.2017
21:17:38
А прототипы кстати как парсить будем

И циклические ссылки

Alex
23.06.2017
21:17:51
ты туда переложишь все рутину для обработки логов

Дмитрий
23.06.2017
21:19:21
И выпущу релиз с выходом на пенсию

Alex
23.06.2017
21:19:54
делов ровно на вечер :) ну тебе виднее

Дмитрий
23.06.2017
21:20:17
Ещё кстати проблема в том, что пакет должен собираться и для ноды и для браузера

Admin
ERROR: S client not available

Дмитрий
23.06.2017
21:20:25
Со своими имплементациями воркеров

С поддержкой вебпака

Alex
23.06.2017
21:20:55
ты же сам сказал что клиенту это не нужно

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

причем тут вебпак тогда вообще непонятно

Дмитрий
23.06.2017
21:22:29
ты же сам сказал что клиенту это не нужно
Ему не нужно огребать 2Мб/сек сообщений, это не значит, что сбор данных на случай проблем должен быть напрочь выключен

И желательно, чтобы папка node_modules у юзеров не коллапсировала под действием гравитации в чёрную дыру

причем тут вебпак тогда вообще непонятно
Вот в этом и фигня, что там столько тонкостей, что лениво сказать "да чо ты без воркеров то" проще всего

Google
Alex
23.06.2017
21:23:56
ты просто еще дзен не познал :)

можно все

Дмитрий
23.06.2017
21:24:12
Да конечно, я то не познал)

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

Со своими тонкостями

Alex
23.06.2017
21:24:26
что значит собрать

Дмитрий
23.06.2017
21:24:37
Видишь сколько вопросов сразу возникает

Alex
23.06.2017
21:24:43
ты их в бандл пихать собрался?

Дмитрий
23.06.2017
21:25:20
Что значит пихать?

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

И да, это всё работает в бандле. А так же просто отдельно в браузере. А так же в ноде. А так же отдельным микросервисом. Работает с постгрес. с монгой, с редисом и с rethinkdb в качестве хранилищ, но так же не откажется сохраниться в localstorage или банально в json файл на диске.

На react native пока, увы, не завелось

Масштаб проблем, всплывающих при такой универсальности думаю можете представить)

Alex
23.06.2017
21:36:00
я не так давно просто сталкивался с похожей проблемой производительности, нужна была типо прокси - браузер - сокет соединение - прокси сервер - любой ендпоинт (редис, постгря и тд)

на уровни прокси нужно было писать гору логов опционального

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

обьемы на запись думаю не меньше были

логика по обработке тоже есть

Дмитрий
23.06.2017
21:44:29
Каждое усложнение архитектуры — это добавление точек для отказа модуля

Это дополнительное время на разработку и поддержку

Alex
23.06.2017
21:44:53
у всего есть своя цена

с другой стороны появляется масштабируемость

если бы у меня перестало хватать 1 инстанса - я бы в докере просто поднял еще 1

Страница 998 из 2237