Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 31.08.2021, 22:38
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Сообщение от voraa
new Array(n) создает "дырявый" массив, который очень неэффективен при всяких оптимизациях.
Array(n).fill(0)
Ответить с цитированием
  #12 (permalink)  
Старый 31.08.2021, 22:41
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

Vlasenko Fedor, ну например возможно jsonplaceholder держит только три соединения, а больше - дропает.)
Частая ситуация, так-то.
__________________
29375, 35
Ответить с цитированием
  #13 (permalink)  
Старый 31.08.2021, 22:52
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Aetae,
сервер для одного клиента ?
для чего тогда балансировщики
и что делать с ошибками в таком случае?
Ответить с цитированием
  #14 (permalink)  
Старый 31.08.2021, 23:23
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

Vlasenko Fedor, ты странный. Обычная антиспам\ антидос\ антибрутфорс система. На эндпоинт один клиент может послать только N запросов за раз. Это буквально везде.
Балансировщики - балансируют разные запросы разных клиентов меж разными серверами, они тут не причём.
С ошибками делать то же что и всегда - как-либо обрабатывать.
__________________
29375, 35
Ответить с цитированием
  #15 (permalink)  
Старый 01.09.2021, 00:07
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Сообщение от Aetae
Обычная антиспам\ антидос\ антибрутфорс система.
Пишешь, о том в чем не разбираешься
Ибо в эти системах есть понятие время в количество запросов, а не колличество только
Потому я изадал вопрос ТС, чтоб он пояcнил зачем это
Пример http://nginx.org/ru/docs/http/ngx_ht...eq_module.html
Ответить с цитированием
  #16 (permalink)  
Старый 01.09.2021, 00:47
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

Vlasenko Fedor, што?
Вот прямо по твоей ссылке: ставим
limit_req zone=one burst=3 nodelay;
получаем именно такой результат.

"N запросов за раз" - очевидно очевидно значит "N запросов за минимальный промежуток времени установленный на сервере в подавляющем большинстве случаев равный одной секунде". Ты думал я о планковских величинах тут говорю, или что?
__________________
29375, 35

Последний раз редактировалось Aetae, 01.09.2021 в 00:58.
Ответить с цитированием
  #17 (permalink)  
Старый 01.09.2021, 01:02
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Aetae,
неужели непонятно, что лимит запросов идет по времени
давй на пальцах, как ты поймешь что превышен лимит ?
будешь считать запросы и говорить, что 4 уже с 503 ответом?
нет ты будешь смотреть в каком интервале времени прошли запросы
вот ответ на твой пример
Ответить с цитированием
  #18 (permalink)  
Старый 01.09.2021, 01:32
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

Vlasenko Fedor,
Цитата:
будешь считать запросы и говорить, что 4 уже с 503 ответом?
нет ты будешь смотреть в каком интервале времени прошли запросы
Эти фразы друг другу не противоречат: "будешь считать запросы на интервале времени rate(который в 99% равен 1r/s) и говорить, что 4 уже с 503 ответом". Одна секунда и есть условно одновременно.

Или ты намекаешь, что может быть такой случай, когда ответы на все три запроса придут раньше чем через секунду, из-за чего четвёртый запрос будет отправлен до истечения секундного интервала из-за чего получится 4 запроса в секунду и он будет дропнут? Конкретно в данном случае сам механизм работы burst не допустит этого, но и в целом в реальном мире это крайне маловероятно.
В идеальном случае действительно желательно точно знать, что за механизмы и тайминги используются там на сервере, и высчитывать доп задержку для надёжности, если ты имел ввиду именно это.
__________________
29375, 35

Последний раз редактировалось Aetae, 01.09.2021 в 01:36.
Ответить с цитированием
  #19 (permalink)  
Старый 01.09.2021, 09:41
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,704

Сообщение от Vlasenko Fedor
Сообщение от voraa
new Array(n) создает "дырявый" массив, который очень неэффективен при всяких оптимизациях.
Array(n).fill(0)
Я же не про то, что все элементы заполнены, а с точки зрения оптимизации. Я ориентируюсь в этом на V8, как самый распространенный (это и Chrome, и Edge, и Node).

https://v8.dev/blog/elements-kinds
Конкретнее
https://v8.dev/blog/elements-kinds#avoid-creating-holes

Если массив стал (изначально создан) дырявым, то он дырявым и останется, что с ним не делай. V8 будет считать его дырявым, и не применять к нему оптимизаций, как к заполненному.
Я когда то делал тесты. Выигрыш может и не самый впечатляющий - 5-7%. Но все таки выигрыш.
Ответить с цитированием
  #20 (permalink)  
Старый 01.09.2021, 12:25
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

voraa, ну это прям наносекунды. Тогда и методы массива вообще юзать не надо - просто циклы. Конечно же никакого spread и destructuring. А ещё можно выиграть на создании объектов вот так, да: https://v8.dev/blog/cost-of-javascript-2019#json .)
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как реализовать отправку содержимого из iframe нажатием комбинации клавиш ctrl+enter Naizer Общие вопросы Javascript 4 27.11.2013 17:39
Подскажите как реализовать такую задачу Gasherez (X)HTML/CSS 0 20.09.2013 19:59
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как это реализовать на JS Bezlyj Общие вопросы Javascript 6 06.03.2012 09:20
Как реализовать? Fliand Элементы интерфейса 4 22.08.2009 19:47