Node.js Worker Threads Are Problematic, but They Work Great for Us, by @inngest.com:
Node.js Worker Threads Are Problematic, but They Work Great for Us, by @inngest.com:
Event Loop для начинающих. Не так страшно, как вам рассказывали
JavaScript выполняет код в одном основном потоке. Это означает, что инструкции выполняются последовательно — одна за другой. Получил команду — выполнил. Но что делать интерпретатору, если он встречает код, который не может выполнить сразу? Например, обработчик события. Пока событие, допустим, клик на кнопку, не произошло, код внутри обработчика не выполнится. Такой код называют асинхронным. К асинхронным операциям относятся, например, таймеры ( setTimeout ), сетевые запросы или события интерфейса. Промисы ( Promise ) используются для обработки результатов таких операций. В такой ситуации на помощь интерпретатору JS приходит среда, в которой выполняется скрипт. Это может быть Node.js, мобильные среды или интерфейс, который предоставляет браузер — Web API (есть и другие). В отличие от JavaScript-движка, среда выполнения может использовать несколько потоков для обработки ввода-вывода, таймеров и сетевых операций. Если сравнить выполнение скрипта с выступлением оркестра, то дирижёром, который отвечает, чтобы каждая функция «отыграла свою партию» в нужный момент, можно назвать Event Loop. Event Loop — это механизм среды выполнения, который управляет порядком выполнения задач. Он координирует работу JavaScript-кода, обработку событий и другие процессы браузера. Вопреки расхожему мнению, работа этого механизма не так сложна, как его часто описывают. В этой статье, проповедуя Фреймановскую истину — «Если не можешь объяснить что-то простыми словами, то ты не понимаешь этого» — автор попытается (для себя и для других) описать работу Event Loop в браузере. В среде Node.js концепция похожа, но вместо Web API используются другие механизмы ввода-вывода.
Событийный цикл в asyncio: как Python-код работает поверх механизмов Linux
Большая статья для тех, кто, как и я, споткнулся об asyncio и так не разгадал до конца "магию" событийного цикла. Попробовал распутать этот клубок через подробный рассказ (в как можно более доступной форме) о внутренних механизмах Линукса и самого asyncio, которые лежат в основе событийного. К концу статьи, надеюсь, магия исчезнет, а останется ясное понимание фундамента. Погружаемся
https://habr.com/ru/articles/995032/
#asyncio #python #epoll #selectors #асинхронность #event_loop #eventloop #linux #сокеты
C-events, yet another event loop, simpler, smaller, faster, safer
End-to-End Browser and Accessibility Event Architecture, by (not on Mastodon or Bluesky):
https://www.maxdesign.com.au/articles/end-to-end-event-architecture.html
#accessibility #browsers #eventloop #browserengines #javascriptengines #assistivetech
Instrumenting the Node.js Event Loop With eBPF, by @coroot:
https://coroot.com/blog/instrumenting-the-node-js-event-loop-with-ebpf/
Recently, I was testing Coroot’s AI Root Cause Analysis on failure scenarios from the OpenTelemetry demo. One of them, loadgeneratorFloodHomepage, simulates a flood of excessive requests. As expected, it caused a latency degradation across the stack. Coroot’s RCA highlighted how the latency cascaded through all dependent services. At the same time, we noticed a moderate...
Next #swad release will still be a while. 😞
I *thought* I had the version with multiple #reactor #eventloop threads and quite some #lockfree stuff using #atomics finally crash free. I found that, while #valgrind doesn't help much, #clang's #thread #sanitizer is a very helpful debugging tool.
But I tested without #TLS (to be able to handle "massive load" which seemed necessary to trigger some of the more obscure data races). Also without the credential checkers that use child processes. Now I deployed the current state to my prod environment ... and saw a crash there (only after running a load test).
So, back to debugging. I hope the difference is not #TLS. This just doesn't work (for whatever reason) when enabling the address sanitizer, but I didn't check the thread sanitizer yet...
Среда выполнения JavaScript простым языком: движок, Event Loop и очереди задач
Привет, с вами снова я – Дмитрий, React-разработчик, хотелось бы сегодня затронуть тему среды выполнения JS. Многие знают, другие уже подзабыли, а новички — вовсе не в курсе. В общем, эта статья точно найдёт своих читателей. Постараюсь простыми словами и по делу.
https://habr.com/ru/companies/gnivc/articles/910918/
#js #javascript #react #начинающим #runtime #ast #среда_выполнения_javascript #среда_выполнения #eventloop #callstack