Что были изолированы Node.js? И почему они теперь мертвы?

В 0.7.0, "Экспериментальная изоляция поддержки" [sic]. Я никогда не понимал этого, кроме какой-то неопределенной идеи, что они давали потокоподобные возможности, но без проблем потоков. И, возможно, это было полезно для решения Node истории отладки/обработки ошибок.

Но никто никогда не объяснял, кем они были, либо в этом блоге, либо в первых результатах Google. Что такое изоляты? Почему они были введены в Node?


Сегодня утром куча проблем GitHub (2662, 2663, 2665 и, вероятно, больше) были закрыты комментарием "Изоляция мертва". Что случилось? Почему эта хорошая идея, которая из того, что я могла сказать, была функцией заголовка для 0.7, умереть?

Ответы

Ответ 2

Вы можете думать о Isolate как независимом экземпляре среды выполнения V8. Он имеет собственное управление памятью (GC). Имя происходит от механизма выполнения Chrome, где у вас есть несколько вкладок, и каждая вкладка имеет собственный движок среды JavaScript. Каждая вкладка (и среда JS) должна быть "изолирована" друг от друга, поэтому ни одна из страниц не может получить доступ к другой среде страницы (window.local или window.document). Именно по этой причине у V8 есть объект Isolate, который позволяет ему работать в параллельных средах (страницах/вкладках) независимо друг от друга (изолированы) друг от друга.