Ajouter un commentaire

Napa.js : un environnement d'exécution JavaScript multithreads

Par:
fredericmazue

mar, 24/10/2017 - 15:14

Microsoft vient d'ouvrir Napa.js, une bibliothèque JavaScript maison créée à l'origine pour développer des services hautement interactifs sans pénaliser la performance au sein du moteur de recherche Bing.

Napa.js est un environnement d'exécution JavaScript multithread construit au dessus de V8, le moteur JavaScript open source de Google. Napa.js est conçu pour permettre d'exécuter du code très gourmand en calculs sans bloquer la boucle d'événements. Les threads tournent sur des instances de V8 isolées les une des autres, tout en pouvant communiquer entre eux.

Napa.js vient comme un module node.js, mais il peut aussi être utilisé dans des contextes sans node.js.

Voici un exemple de code qui charge Napa.js puis créée une zone d'exécution dans laquelle sont démarrés 4 threads.

var napa = require('napajs');

// Création d'un zone avec 4 threads
var zone1 = napa.zone.create('zone1', { workers: 4 });

// Préparation à l'exécution:
// le même code de thread diffusé 4 fois dans la zone.
zone1.broadcast('console.log("hello world");');

// Exécution.

zone1.execute(
    (text) => text,
    ['hello napa'])
    .then((result) => {
        console.log(result.value);
    });

Napa.js est sur GitHub. Des exemples d'utilisation telle que l'évaluation de Pi en calcul parallélisé ou de suites des Fibonnacci sont proposés

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 TTTTTT  V     V  H  H   QQQ     AA  
TT V V H H Q Q A A
TT V V HHHH Q Q AAAA
TT V V H H Q QQ A A
TT V H H QQQQ A A
Q