Size: a a a

Rust Jobs - вакансии & резюме

2020 August 15

K

Karlson in Rust Jobs - вакансии & резюме
Kai Ren
Окей, я понял Ваш поинт в том, что на Расте спавнить много соединений - дешевле выходит по ресурсу и по перфомансу. Но при этом говорить, что это из-за того, что Node.js синхронный - не верно. У него просто абстракции "толще". Синхронность/асинхронность там ни при чём. Оба работают вполне себе асинхронно.
как раз таки это я и пытаюсь объяснить, сихронность тут не причем
источник

K

Karlson in Rust Jobs - вакансии & резюме
Ну хотя относительно, при блокирование процесса - тормозят другие и встают в очередь - в следствии чего при сильной нагрузке event_loop разрастается быстрее
источник

KR

Kai Ren in Rust Jobs - вакансии & резюме
Это не блокирование процесса в понимании асинхронщины. Это было бы блокированием, если бы в этот момент управление отдалось бы ядру и весь ивент луп бы просто ждал, хотя мог бы выполнять другую работу. Здесь же вы не можете отдать управление ядру, здесь V8 вполне себе выполняет необходимую работу, и в этот момент всем процессом какая-то другая работа выполнятся не может. То есть Ваш процесс/поток не простаивает, на самом деле.
источник

K

Karlson in Rust Jobs - вакансии & резюме
Как раз таки при вызове любой функции из под V8 - идет простаивание всего потока
источник

KR

Kai Ren in Rust Jobs - вакансии & резюме
А V8 выполняется в другом потоке?
источник

K

Karlson in Rust Jobs - вакансии & резюме
В том же
источник

KR

Kai Ren in Rust Jobs - вакансии & резюме
Ну так какое ж это простаивание? Это выполнение кода через FFI. Просто вызов функции. За ней не стоит блокирующего ИО.
источник

K

Karlson in Rust Jobs - вакансии & резюме
Могу доказать это очень просто, сделайте JSON.parse() большущей строки(ну вот очень толстой), а сверху черканите setTImeout( () => console.log("500"), 500)
источник

KR

Kai Ren in Rust Jobs - вакансии & резюме
Karlson
Могу доказать это очень просто, сделайте JSON.parse() большущей строки(ну вот очень толстой), а сверху черканите setTImeout( () => console.log("500"), 500)
И это не будет простаивание.
источник

K

Karlson in Rust Jobs - вакансии & резюме
вы будете ждать пока у вас парсинг завершится, и только тогда получите вывод в stdout
источник

A

Adv0cat in Rust Jobs - вакансии & резюме
Погодите, поправьте меня, если не прав, но в js асинхронщина по сути происходит только при аякс запросе и всё, ну еще воркеры, но остальное время js поток не отпускает, даже при евентах, т.е. если стоит таймаут, то больше ничего не происходит кроме ожидания таймаута.
источник

KR

Kai Ren in Rust Jobs - вакансии & резюме
Karlson
вы будете ждать пока у вас парсинг завершится, и только тогда получите вывод в stdout
Верно.
источник

K

Karlson in Rust Jobs - вакансии & резюме
это называется блокирование event_loop
источник

K

Karlson in Rust Jobs - вакансии & резюме
Adv0cat
Погодите, поправьте меня, если не прав, но в js асинхронщина по сути происходит только при аякс запросе и всё, ну еще воркеры, но остальное время js поток не отпускает, даже при евентах, т.е. если стоит таймаут, то больше ничего не происходит кроме ожидания таймаута.
не не, тут не правы вы, все прекрасно работает в этом плане
источник

¿

¿hope in Rust Jobs - вакансии & резюме
Adv0cat
Погодите, поправьте меня, если не прав, но в js асинхронщина по сути происходит только при аякс запросе и всё, ну еще воркеры, но остальное время js поток не отпускает, даже при евентах, т.е. если стоит таймаут, то больше ничего не происходит кроме ожидания таймаута.
В NodeJS весь I/O - асинхронный, там для этого есть пул из потоков, а у самого цикла событий есть фазы, одна из которых - это запустить таймеры с наименьшей задержкой.
источник

K

Karlson in Rust Jobs - вакансии & резюме
по сути, grpc можно даже в задаче забыть, открыть по tcp стрим, и обмениваться сообщениями
источник

KR

Kai Ren in Rust Jobs - вакансии & резюме
Karlson
это называется блокирование event_loop
И да, и нет. Да - потому что он тяжелая вычислительная операция забирает всё управление. А нет - потому что у Вас в Расте на одном потоке будет точно то же, либо на скедулере без воркстилинга, если заспавненные таски уедут на один и тот же тред. Блокирование (простаивание) в понятиях асинхронщины - это когда поток блокируется без полезной нагрузки (например, ожидает ответа от операции блокирующего ИО). В Вашей же ситуации блокировка происходит именно полезной нагрузкой.
источник

KR

Kai Ren in Rust Jobs - вакансии & резюме
Ладно, не суть, оффтоп уже.
источник

K

Karlson in Rust Jobs - вакансии & резюме
источник

b

badtrousers in Rust Jobs - вакансии & резюме
мы ищем дата саентистов на фулл–тайм работу. нужно разработать архитектуру виртуальной машины и спецификацию JIT–оптимизируемого байт–кода, помимо всего прочего. абсолютно необходим опыт работы с графовыми базами данных, хорошее представление о графовых алгоритмах, ну и разумеется опыт реализации компиляторов, ассемблеров, виртуальных машин.
источник