IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Multithread et JavaScript


Sujet :

JavaScript

  1. #1
    Membre averti Avatar de mapmip
    Profil pro
    ulla
    Inscrit en
    Juillet 2006
    Messages
    1 326
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ulla

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 326
    Points : 345
    Points
    345
    Par défaut Multithread et JavaScript
    bonjour,

    comment faire du multithread avec javascript ?
    j'avais lu un article sur ce site avec un exemple montrant des fontaines de las vegas du casino bellagio mais je ne le retrouve plus

    merci d'avance

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Points : 545
    Points
    545
    Par défaut
    Salut !

    Le multithreading, en JavaScript, s’effectue par le biais des WebWorker.
    L’exemple des fontaines est un exemple pour Internet Explorer 10, il se trouve sur cette page .

    Toutefois je souhaite te mettre en garde : l’utilisation des WebWorker pour accélérer un rendu graphique n’est pas la meilleur des solutions. Si tu consulte la démo des fontaines avec l’un des derniers navigateurs Chrome sous Windows, tu remarqueras que l’activation/désactivation des WebWorker n’influe pas sur le framerate. Car Chrome, contrairement a IE, utilise l’accélération matériel pour le rendu, même pour le context 2D.
    Bref si tu souhaites paralléliser le rendu, il est préférable de le faire là où cela doit être fait : sur la carte graphique et non pas sur le CPU !

  3. #3
    Membre averti Avatar de mapmip
    Profil pro
    ulla
    Inscrit en
    Juillet 2006
    Messages
    1 326
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ulla

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 326
    Points : 345
    Points
    345
    Par défaut
    Citation Envoyé par p3ga5e Voir le message
    , il est préférable de le faire là où cela doit être fait : sur la carte graphique et non pas sur le CPU !
    et comment spécifier que cela doit exploiter la carte graphique ?

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Points : 545
    Points
    545
    Par défaut
    Cela ne ce spécifie pas ! Cela ce programme

    Le parallélisme sur une carte graphique intervient sur 2 notions, par l’écriture de micro programme nommé shader ou kernel :
    • Le Vertex Shader : permettant le parallélisme des calculs géométrique sur des sommets.
    • Le Pixel Shader : permettant le parallélisme sur l’évaluation des pixels rendu.

    Les opérations géométriques dans les shaders sont également parallélisés, la multiplication de 2 matrices 4x4 ne couteras guère plus, en cycles, que la multiplication de 2 réels. C’est pourquoi il préférable de raisonné de façon géométriques plutôt que de manière arithmétique, de résoudre toute tes équations linaires en utilisant le calcul matriciel.

    La programmation sur GPU reste la meilleure des solutions, d’un point de vue performance, pour une application graphique dynamique, toute fois cela impose des contraintes , par exemple une carte graphique ne sait tracer que 3 type de primitives : des points, des segments et des triangles. Tracer des courbes se résume, en gros, à tester si un pixel vérifie l’équation de la courbe.

    Si je t’ai pas fait fuir avec mes explications , sache qu’il existe plusieurs technos, sur les navigateurs web, pour programmer la carte graphique, entre autres : XNA avec le plugin Silverlight, Stage3D avec le plugin Flash, ou WebGL ne nécessitant pas de plugin ( a part pour IE).

    De manière général, et pour revenir au sujet principal, les WebWorker, bien que permettant la parallélisassions de taches de manière simple, ne permettent pas un réel gain de performance. la distribution de la charge entre chaque cœurs du CPU n’est pas garanti par le multithreading.

    Il existe, à ma connaissance, sur navigateur, 2 technos pour effectuer du parallélisme sur CPU
    • Le plugin RiverTrail d’intel
    • Et les shader du plugin Flash Player permettant d’exécuter un kernel pré-compiler avec l’outil Pixel Bender d’adobe, techno très proche du pixel shader sur GPU

  5. #5
    Membre expérimenté Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Points : 1 537
    Points
    1 537
    Par défaut
    Citation Envoyé par p3ga5e Voir le message
    Salut !

    Le multithreading, en JavaScript, s’effectue par le biais des WebWorker.
    L’exemple des fontaines est un exemple pour Internet Explorer 10, il se trouve sur cette page .

    Toutefois je souhaite te mettre en garde : l’utilisation des WebWorker pour accélérer un rendu graphique n’est pas la meilleur des solutions. Si tu consulte la démo des fontaines avec l’un des derniers navigateurs Chrome sous Windows, tu remarqueras que l’activation/désactivation des WebWorker n’influe pas sur le framerate. Car Chrome, contrairement a IE, utilise l’accélération matériel pour le rendu, même pour le context 2D.
    Bref si tu souhaites paralléliser le rendu, il est préférable de le faire là où cela doit être fait : sur la carte graphique et non pas sur le CPU !
    d'ailleurs chrome plante si je reste sur la page quelques minutes

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonjour

    Le multithreading, en JavaScript, s’effectue par le biais des WebWorker.
    Un WebWorker permet d'effectuer une longue tâche sans bloquer le navigateur (dialogue de suppression du script en cours) et donc l'utilisateur, c'est tout et c'est déjà beaucoup.

    Je n'ai jamais eu de crash avec une utilisation raisonnable des WebWorkers. Si le code JS est standard (les fontaines de IE j'ai un doute par principe ), il n'y a pas de raison.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/07/2011, 12h34
  2. JavaScript<---->ActionScript
    Par crazypiou dans le forum Flash
    Réponses: 21
    Dernier message: 17/04/2009, 17h14
  3. javascript multithread js
    Par attavus dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/06/2006, 17h29
  4. JavaScript de vérification de formulaire
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/02/2003, 13h48
  5. Multithreading sous HP Ux 11
    Par pykoon dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 18/10/2002, 23h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo