Параллельный код JavaScript - PullRequest
       14

Параллельный код JavaScript

15 голосов
/ 09 октября 2010

Можно ли параллельно запускать код JavaScript в браузере? Я готов пожертвовать некоторой поддержкой браузера (IE, Opera и т. Д.), Чтобы получить здесь некоторое преимущество.

Ответы [ 4 ]

14 голосов
/ 09 октября 2010

Если вам не нужно манипулировать домом, вы можете использовать веб-работников ... есть несколько других ограничений, но проверьте это @ http://ejohn.org/blog/web-workers/

6 голосов
/ 01 мая 2013

Parallel.js имеет приятный API для многопоточной обработки в Javascript.Он работает как в веб-браузерах, так и в узле.

3 голосов
/ 15 октября 2010

Возможно, было бы лучше перекодировать ваш JavaScript во что-то, что обычно работает быстрее, чем пытаться ускорить Javascript, идя параллельно. (Я ожидаю, что вы обнаружите, что стоимость разветвления параллельных операций JavaScript тоже довольно высока, и это вполне может уничтожить любое возможное параллельное усиление; это обычная проблема параллельного программирования).

Javascript интерпретируется в большинстве браузеров IIRC, и он динамичен, а значит, работает медленно.

У меня сложилось впечатление, что вы можете написать код Java и запустить его под плагинами браузера. Java безопасна по типу, а JIT компилируется в машинный код. Я ожидаю, что любые большие вычисления, выполненные в Javascript, будут выполняться намного быстрее в Java. Я специально не предлагаю Java; подойдет любой скомпилированный язык, для которого вы можете получить плагин.

В качестве альтернативы Google предоставляет Closure, JavaScript-компилятор . заявлено, что является компилятором, но для меня он выглядит как оптимизатор , и я не знаю, насколько он "оптимизирует". Но, возможно, вы можете использовать это. Я ожидаю, что компилятор Closure будет встроен в Chrome (но я точно не знаю), и, возможно, просто запуск Chrome получит ваш JavaScript-компилятор «бесплатно».

РЕДАКТИРОВАТЬ: После прочтения о том, что делает Closure, как компилятор, я не сильно впечатлен. Похоже, что основной упор делается на уменьшение размера кода, что минимизирует время загрузки, но не обязательно производительность. Единственная хорошая вещь, которую они делают в функции inlining. Я сомневаюсь, что это поможет так же, как переход на действительно скомпилированный язык.

РЕДАКТИРОВАТЬ 2: Очевидно, что компилятор "Closure" отличается от движка, чем запускает JavaScript в Chrome. Мне сказали, но я точно не знаю, что у движка Chrome есть настоящий компилятор.

2 голосов
/ 30 октября 2012

Intel разрабатывает проект с открытым исходным кодом под кодовым названием River Trail check http://www.theregister.co.uk/2011/09/17/intel_parallel_javascript/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...