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 :

question générale de performance JAVASCRIPT


Sujet :

JavaScript

Vue hybride

Darkyl question générale de... 25/05/2012, 19h16
NoSmoking Bonjour, pour commencer tu... 25/05/2012, 20h06
Darkyl Je m'attendais à cet réponse... 25/05/2012, 20h43
NoSmoking la première chose à faire,... 26/05/2012, 11h23
Darkyl salut, qu'est-ce que tu... 26/05/2012, 11h35
Willpower javascript est je pense assez... 25/05/2012, 20h45
Willpower Il existe pas mal de jeux du... 25/05/2012, 20h53
Darkyl merci de ta réponse. Là,... 25/05/2012, 20h53
Darkyl merci pour le lien, je... 25/05/2012, 20h57
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut question générale de performance JAVASCRIPT
    Bonjour,

    Je travail actuellement sur un projet de jeu video en full javascript.

    La question que je me pose aprés avoir bien avancé le projet est:

    Le jeu est un city_builder qui gére de gros tableaux avec des gros object.
    Je viens de faire un timer benefice_batiment qui met à jour tous les bâtiments construits, en recalculant leur production en cours, leur attribution de main d-œuvre, l'attribution de locataire pour les bâtiments d'habitation...

    - Pour l'instant, je n'ai pas du tout optimiser la programmation ou la mise en cache des images, il y a beaucoup de rappel à des fonctions au lieu de variable....

    Mais, j'ai remarqué depuis l'introduction d'un timer benefice_batiment, que le jeu ramait beaucoups. Je n'ai pas d'analyseur d'environnement javascript, n'ai pas accés au fuite mémoires, au inspection de variables et tout le tra lala mais avant d'optimiser le code:

    - Javascript est-il (ainsi que l'environnement dans lequel il est employé, c'est à dire un navigateur internet) assez puissant pour gérer un jeu de ce type?
    Avec timer toute les sc qui calcul sur des gros objets...
    Ou est-ce simplement mon code qui est a optimiser....?

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 202
    Par défaut
    Bonjour,
    - Pour l'instant, je n'ai pas du tout optimiser la programmation ou la mise en cache des images, il y a beaucoup de rappel à des fonctions au lieu de variable....
    Ou est-ce simplement mon code qui est a optimiser....?
    pour commencer tu t'ai fourni la réponse.

  3. #3
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    Je m'attendais à cet réponse ...

    Je demande , avant de revoir entièrement mon code, l'expèrience des créateurs d'apllication javascript orienté objet. A savoir, est-on limité par la mémoire (outre la config des paramètres du navigateur) en Javascript sur un navigateur?

    Si c'était le cas et cela s'avérait impossible de développer un caezar (city builder) même avec un code optimisé, alors je m'orienterai vers un autre choix de langage...

    Telle était ma question.

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 202
    Par défaut
    Citation Envoyé par Darkyl Voir le message
    Je m'attendais à cet réponse ...
    la première chose à faire, outre bien penser son plan "d'action", est de minimiser les accès/appels au DOM et les appels aux fonctions quand on peut mettre en "cache", les performances sans ressentent très rapidement bien que pas de la même façon sur tous les navigateurs.

  5. #5
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    salut,

    qu'est-ce que tu veux dire par " les appels à fonctions quand on peut mettre en
    cache"?


    On peut mettre une fonction en cache, elle ne s'y met pas automatiquement lors de sa déclaration?

    J'ai cherché partout des cours sur l'optimisation en javascript (mémoire, taille code mais surtout utilisation des ressources), et je n'ai rien trouvé.

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 202
    Par défaut
    mettre en "cache" est entre guillemet, le terme est légèrement impropre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for( var i=0; i < tableau.length; i++){
      // faire quelque chose
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var i, nb = tableau.length;  // mise en "cache" de tableau.length
    for(  i=0; i < nb; i++){
      // faire quelque chose
    }
    ceci dit, prenons l'exemple d'un déplacement d'un objet sur la page,
    il peut être intéressant de tenir à jour une variable de position, pour cet objet, plutôt que de faire appel sans arrêt à une fonction getPosition.

  7. #7
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    javascript est je pense assez puissant pour gérer des gros jeu avec beaucoup d'actions par secondes, après il faut optimiser c'est sûr et encore plus le rafraîchissement du DOM qui fait rapidement lagger une interface.

    Edit:
    Niveau rafraîchissement, je pense qu'un interval de 20 millisecondes peut déjà gérer des millions de lignes de code alors qu'un raffraichissement des données d'un jeu (hors animations) ou d'un chat peut se faire (en général, ça dépend du jeu bien sûr) toutes les 2-3 secondes sans que le joueur ne soit gêné par une "attente".

  8. #8
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Il existe pas mal de jeux du genre en javascript, voici le dernier en date : uprisingempires.com


    Donc la réponse à ta question : oui javascript peut suivre, maintenant il faut avoir le niveau pour coder un jeu de cette ampleur, et en général ce n'est pas une personne seule qui va coder un truc pareil.

  9. #9
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    merci de ta réponse.

    Là, sans optimisation, j'arrive à peine à parcourir deux objets avec 20 propriétés par sc sans que cela se voit.

    Ce qui a de bizar est que sans toucher au jeu, si on le laisse tourné, il va ramer de plus en plus.

    Je dois avoir des fuites mémoires ou des duplicata de variables ou je sais pas quoi.

    Firebug permet-il de voir les variables à l'éxécution et leur mémoire?

    si jamais:
    jeu

  10. #10
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    merci pour le lien, je connaissais pas.je vais aller voir mais si c'est comme tous ceux que j'ai déjà essayer, aucun ne permet de gérer la map sous forme de case comme dans caezar... C'est juste des emplacements clickables, rien de plus.

    A voir donc, mais merci

  11. #11
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Citation Envoyé par Darkyl Voir le message
    aucun ne permet de gérer la map sous forme de case comme dans caezar... C'est juste des emplacements clickables, rien de plus.
    Qu'entends-tu par "sous forme de case" ?

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

Discussions similaires

  1. [Python 2.X] Questions générales : performance lecture fichier et excel en python
    Par coolpix77 dans le forum Général Python
    Réponses: 5
    Dernier message: 24/03/2015, 17h22
  2. Petite question générale sur Javascript
    Par skywaukers dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/11/2007, 17h49
  3. [Hibernate 3] Questions générales sur les performances
    Par hugo123 dans le forum Hibernate
    Réponses: 7
    Dernier message: 13/12/2006, 17h02
  4. [LDAP] Questions générales sur LDAP
    Par guiguisi dans le forum Autres SGBD
    Réponses: 5
    Dernier message: 25/05/2005, 10h05
  5. Petite question sur les performances de Postgres ...
    Par cb44 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 13h49

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