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

Ребят, это действительно так, что если node.js сервер под нагрузкой,

то внутри express route handler ответы для разных запросов могут перезаписаться друг на друга? о_О
Вот оригинал:

Since Node is single-threaded, that means that all your users are going to be sharing the same memory space. In other words, unlike in the browser, you have to be careful not to store user-specific data in closures where other connections can get at it. For this reason, I like to use res.locals to store temporary user data that’s only available during that user’s request/response cycle

12 ответов

25 просмотров

Правда

а откуда инфа?

Vlad-☄️ Автор вопроса

Но как? Разве не смотря на однопоточность, нельзя заранее аллоцировать куски памяти для каждого нового подключения и таким образом решить проблему кросс-доступа к одной и той же ячейке?

Можно, ошибка же будет в твоём коде

Vlad-☄️ Автор вопроса

А, ну если писать и читать переменную в глобал пространстве на каждый реквест - не мудрено, что будет полная ёбань Видимо автор всё-таки, что-то перепутал, вот статья https://medium.com/javascript-scene/introduction-to-node-express-90c431f9e6fd , ищите по словам memory management

Всё правильно он написал you have to be careful not to store user-specific data in closures where other connections can get at it. Если есть переменная из замыкания, то она шарится между запросами

Vlad-☄️ Автор вопроса

но ведь в замыкание route handler другой запрос никак не попадёт… смысл написанного тогда? уходя - гасите свет, тушите огонь водой, не шарьте между разными юзерами один стейт в общем, я понял, что он имел в виду, спасибо за успокоение))

Вот пример кода, https://pastebin.com/JGtUXWPs На 1 запросе в секунду будет всегда 1 На 100 запросах в секунду будет от 1 до 100

Vlad-☄️ Автор вопроса

в этом примере foo находится в глобальном замыкании, к этому вопросов вообще нет его предложение звучало как «не храните внутри замыкания route handler что-то, ведь оно перезапишется на следующий вызов обработчика», поэтому-то я и всех взбаламутил)

Там написано что если ты получаешь через замыкание переменную, то другие функции, которые получают эту же переменную через замыкание, будут работать с теми же данными

Vlad-☄️ Автор вопроса

очевидность этого утверждения затуманила мой рассудок и я второй раз неправильно перевёл предложение))

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта