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 :

Optimisation code Javascript


Sujet :

JavaScript

  1. #1
    Membre très actif Avatar de sylvain230
    Homme Profil pro
    Orléans
    Inscrit en
    Mai 2008
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Orléans
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 234
    Par défaut Optimisation code Javascript
    Bonjour,

    J'ai fait un programme en WebGL.

    Maintenant, je voudrais optimiser le code au maximum.
    Quels conseils pourriez vous me donner pour cette optimisation ?

    J'ai déjà transformé mon code pour avoir un programme orienté objet.
    Qu'est ce qui demande le plus de calcul à Javascript ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Heu sans voir ton code ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par SpaceFrog
    Heu sans voir ton code ?
    Tu veux nous faire croire que tu as épuisé ta collection de poulets à éventrer ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre très actif Avatar de sylvain230
    Homme Profil pro
    Orléans
    Inscrit en
    Mai 2008
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Orléans
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 234
    Par défaut
    Ben en fait l'idée de mon sujet c'était dé débattre un peu sur les bonnes pratiques de programmation Javascript.
    Après, je voulais m'inspirer de vos idées pour améliorer mon code.

    Je peux quand même vous montrer un peu si vous le désirez.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
     
    // Fonction principale pour dessiner la scène
                function drawScene() {
                    gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
                    parametre();
     
     
                    if(lumiere)  {
                        gl.uniform3f(
                        shaderProgram.ambientColorUniform,
                        parseFloat(document.getElementById("ambientR").value),
                        parseFloat(document.getElementById("ambientG").value),
                        parseFloat(document.getElementById("ambientB").value)
                    );
     
                        gl.uniform3f(
                        shaderProgram.pointLightingLocationUniform,
                        parseFloat(document.getElementById("lightPositionX").value),
                        parseFloat(document.getElementById("lightPositionY").value),
                        parseFloat(document.getElementById("lightPositionZ").value)
                    );
     
     
                        gl.uniform3f(
                        shaderProgram.pointLightingSpecularColorUniform,
                        parseFloat(document.getElementById("specularR").value),
                        parseFloat(document.getElementById("specularG").value),
                        parseFloat(document.getElementById("specularB").value)
                    );
     
                        gl.uniform3f(
                        shaderProgram.pointLightingDiffuseColorUniform,
                        parseFloat(document.getElementById("diffuseR").value),
                        parseFloat(document.getElementById("diffuseG").value),
                        parseFloat(document.getElementById("diffuseB").value)
                    );
     
                    }
                    // Gestion de la transparence
                    if(blending)  {
                        gl.blendFunc(gl.SRC_ALPHA, gl.ONE);
                        gl.enable(gl.BLEND);
                        gl.disable(gl.DEPTH_TEST);
                        gl.uniform1f(shaderProgram.alphaUniform, parseFloat(document.getElementById("alpha").value));
                    }
                    else  {
                        gl.disable(gl.BLEND);
                        gl.enable(gl.DEPTH_TEST);
                    }
                    mat4.identity(mvMatrix);
     
     
                    // Déplacement sur chaque axe
                    mat4.translate(mvMatrix, [0, 0, z]);
                    mat4.translate(mvMatrix, [0, y_t, 0]);
                    mat4.translate(mvMatrix, [x_t, 0, 0]);
     
                    // Rotation de l'objet
                    mat4.multiply(mvMatrix, rotationMatrix);
     
                    if(tourner) {
                       mat4.rotate(mvMatrix, degToRad(rCube), [1, 0, -1]);
                    }
     
                    // Le dessin
                    mvPushMatrix();
     
                    // Permet de dessiner un cube
                    if(cube) {
                     Objet3D.webGLCube(video);
     
     
                    var mvPickMatrix = Matrix.create([
                            [mvMatrix[0],mvMatrix[4],mvMatrix[8],mvMatrix[12]],
                            [mvMatrix[1],mvMatrix[5],mvMatrix[9],mvMatrix[13]],
                            [mvMatrix[2],mvMatrix[6],mvMatrix[10],mvMatrix[14]],
                            [mvMatrix[3],mvMatrix[7],mvMatrix[11],mvMatrix[15]],
                             ]);
     
                    // Sélection d'un objet
                        if(doPick) {
     
                            pick = picking(mvPickMatrix);
     
                            if(pick == true)  {
                                alert("cube cliqué !");
                            }
     
                        }
     
     
                    }
     
                    // Permet de dessiner une sphere
                    if(sphere) {
                        Objet3D.webGLSphere();
                    }
     
     
                    // Dessiner un objet quelconque
                    if(objet) {
                        Objet3D.webGLObj();
                    }
     
     
                    // Dessiner une theire
                    if(theiere) {
                        Objet3D.webGLTeapot();
                    }
     
                    mvPopMatrix();
     
                    doPick = false;
     
                    // Afficher le nombre d'images/sec
                  //  framerate.snapshot();
     
                    if (current_time < 0)
                            last_time = new Date().getTime();
     
                    last_time = current_time;
                    current_time = new Date().getTime();
                    var fps = 1000.0 / (current_time - last_time);
                    fps = Math.round(fps);
                    tab[i] = fps;
                    i++;
     
                }
    Par exemple, ca c'est une méthode que j’appelle toutes les 15 ms. C'est pour cela que l'optimisation est importante. Moins y a de code inutile et mieux c'est

    Par contre, c'est pas mal de WebGL malgré que cela reste du Javascript..

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Par exemple ?

    (edit : cramé par la grenouille ok je m'incline )

  7. #7
    Membre très actif Avatar de sylvain230
    Homme Profil pro
    Orléans
    Inscrit en
    Mai 2008
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Orléans
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 234
    Par défaut
    Ok ok je vais regarder ca merci

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

Discussions similaires

  1. Fermeture fenetre crée par code javascript
    Par Kerod dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 27/02/2010, 00h04
  2. Appel fonction php dans code javascript
    Par licorne dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 05/03/2008, 10h55
  3. [débutante] conflit entre 2 codes javascript ??
    Par silversky dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/09/2005, 00h42
  4. pas moyen de trouver l'erreur de ce code Javascript !!!
    Par NATHW dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 25/11/2004, 21h47
  5. Deboggage de code Javascript...
    Par michel baily dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/11/2004, 16h32

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