Size: a a a

Node.js — русскоговорящее сообщество

2020 March 10

СС

Сергей Седой in Node.js — русскоговорящее сообщество
¿hope
Потоки использовать?
Я же указал на проблемы с потоками
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Сергей Седой
Как можно расшарить память между процессами? При передачи SharedArray через IPC он по ссылке идёт?
Unlike child_process or cluster, worker_threads can share memory. They do so by transferring ArrayBuffer instances or sharing SharedArrayBuffer instances.

https://nodejs.org/api/worker_threads.html
источник

СС

Сергей Седой in Node.js — русскоговорящее сообщество
The Fallen Phoenix
Unlike child_process or cluster, worker_threads can share memory. They do so by transferring ArrayBuffer instances or sharing SharedArrayBuffer instances.

https://nodejs.org/api/worker_threads.html
Да, но у этого массива фиксированный размер, да и парсить  его каждый раз такое себе
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
В этой фразе ещё есть смысл, что в child_process/cluster можно не искать даже
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Без использования c++ не существует способа обращения к одной и той же памяти с двух "миров" (realm) кроме вышесказанного
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Через нативные аддоны это можно наверное и организовать для объектов произвольной сложности
источник

СС

Сергей Седой in Node.js — русскоговорящее сообщество
Придётся тогда писать на Go… Может есть какая-то библиотека с быстрой сериализацией для JS? Или JSON самый быстрый?
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Реализация на сях. Может тебе крупно повезло и все уже сделали за тебя
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Сергей Седой
Придётся тогда писать на Go… Может есть какая-то библиотека с быстрой сериализацией для JS? Или JSON самый быстрый?
JSON безусловно самый быстрый способ сериализации из тех что можно получить без нативных аддонов, просто потому что он сам написан как нативный аддон.
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Поэтому средствами js вряд ли его догнать. Но он memory inefficient и не любит циклические ссылки
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
А ещё non-streaming
источник

СС

Сергей Седой in Node.js — русскоговорящее сообщество
Спасибо, попробую, надо только глянуть чем это отличается от ramfs
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
А какая задача?
источник

СС

Сергей Седой in Node.js — русскоговорящее сообщество
The Fallen Phoenix
Поэтому средствами js вряд ли его догнать. Но он memory inefficient и не любит циклические ссылки
Вроде как это решили поддержкой weakmap, правда какая версия JSON его поддерживает не знаю
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Зачем вообще такую штуку как разделяемая память использовать?
источник

СС

Сергей Седой in Node.js — русскоговорящее сообщество
The Fallen Phoenix
Зачем вообще такую штуку как разделяемая память использовать?
Кластеризация
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Сергей Седой
Вроде как это решили поддержкой weakmap, правда какая версия JSON его поддерживает не знаю
Никакая, нужно писать свой кастомный transformer который идёт вторым аргументом в JSON.stringify
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Но это автоматически убивает производительность
источник

СС

Сергей Седой in Node.js — русскоговорящее сообщество
Много состояний in-memory, синхронизировать как-то нужно, можно конечно подключить что-то вроде redis, но не хочу
источник