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 extr�mement actif 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
    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 chevronn�

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

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    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 extr�mement actif 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
    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 chevronn�

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

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    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 Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    D�tails du profil
    Informations personnelles :
    �ge : 53
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    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 : 75
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant perp�tuel
    Secteur : Enseignement

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 6 389
    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.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues � un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

+ 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