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 :

Script de calcul de performances


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Par défaut Script de calcul de performances
    Bonjour,
    Je suis actuellement sur un petit projet expérimental qui semble aller aux limites de ce que l'on peut faire en javascript.

    Malgré tout mes efforts d'optimisation, lors que j'en demande un peu trop au navigateur sur un pc "moyen", les calculs et rendus deviennent long et laborieux et peuvent mener au plantage.

    C'est pourquoi je souhaiterai calculer en temps réel, d'une manière ou d'une autre, les performances du navigateur afin d'ajuster mon application en mode "Fluide et rapide" ou "Lent et décousu, mais qui ne demande pas bcp de ressources".

    Si quelqu'un connait un script ou si vous avez des pistes pour que je puisse en créer un je suis preneur.

    Je pense dans un premier temps, mettre en place des timers sur des fonctions génériques. ou encore un listener qui comptera le nombre de traitements effectués sur une période donnée. Mais je ne pense pas que le résultat aboutira a quelque chose de très précis.

    Merci à tous,
    J’espère que mon problème éveillera des idées

  2. #2
    Membre éclairé

    Femme Profil pro
    Experte JS / Conseillère en best practices / Chercheuse en programmation
    Inscrit en
    Octobre 2007
    Messages
    741
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Experte JS / Conseillère en best practices / Chercheuse en programmation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 741
    Par défaut
    Bonsoir,

    Perso, mon idée serait de faire une boucle incrémentée pendant un temps donné et de récupérer la valeur de l'incrémentation.

    Une seconde suffit

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Par défaut
    Salut merci pour cette idée.
    Je viens de la tester. Ça paraissait tellement simple que cela semblait génial.
    Malheureusement après quelques tests. Même si on met une limite de temps ridicule (j'ai essayé a 1ms !), faire tourner une boucle en free ça fait agoniser le PC ou planter le navigateur !

  4. #4
    Membre éclairé

    Femme Profil pro
    Experte JS / Conseillère en best practices / Chercheuse en programmation
    Inscrit en
    Octobre 2007
    Messages
    741
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Experte JS / Conseillère en best practices / Chercheuse en programmation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 741
    Par défaut
    Bon, ok, un poil plus élaboré, alors...

    Initialise une variable à H+30secondes (par exemple) et i=0.

    Crée une fonction contenant une condition qui vérifie si ta variable H+30!=H

    Tant que ta condition == false, tu relances ta fonction avec un timeout d'une seconde et tu incrémentes i


  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Par défaut
    J'ai pas du saisir le concept.
    Je résumes ce que j'ai compris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var h=new Date().getTime();
    var i=0;
    var j=h+30000;
     
    mafonction = function() {
    while(j!=new Date().getTime())
    {
    	i++;
    	setTimeout("mafonction()",1000);
    }
    }();
    Est ce bien ça ton idée? Je vais tester pour voir mais je pense arriver au même résultat que précédemment

  6. #6
    Membre éclairé

    Femme Profil pro
    Experte JS / Conseillère en best practices / Chercheuse en programmation
    Inscrit en
    Octobre 2007
    Messages
    741
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Experte JS / Conseillère en best practices / Chercheuse en programmation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 741
    Par défaut
    Oui, c'est bien cela...

    Mais, tu ne devrais plus avoir de plantage, puisque ton script fait une pause d'une seconde entre chaque étape...

  7. #7
    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
    Un site sympa pour tester et faire tester ses scripts : http://jsperf.com/
    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

  8. #8
    Membre éclairé

    Femme Profil pro
    Experte JS / Conseillère en best practices / Chercheuse en programmation
    Inscrit en
    Octobre 2007
    Messages
    741
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Experte JS / Conseillère en best practices / Chercheuse en programmation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 741
    Par défaut
    Bovino> Sauf erreur de ma part, ce n'est pas un script, qu'il veut tester

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Par défaut
    J'ai fait quelques tests rapides de ta 2e suggestion, qui n'ont pas étaient très concluant (la page mouline ou plante selon le navigateur).

    Je savais bien que j'allais me heurter a ce genre de problèmes. Javascript n'étant pas conçut pour supporter ce genre de tests.

    Je vais me débloquer quelques heures pour approfondir mes recherches prochainement et je vous ferai part de mes résultats. Je pense que ça peut éventuellement en intéresser quelques uns.

  10. #10
    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
    sinon y'a aussi sunspider

    ou encore avec firebug http://getfirebug.com/javascript et son profiler
    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 !

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Par défaut
    J'ai oublié de préciser mais cela me semblait logique "En javascript".

    Un script Javascript qui ajuste des paramètres en fonctions des performances du navigateur (donc qui varie en fonction de la configuration du pc et du navigateur utilisé)

    En d'autre termes si le script détecte que le pc de l'utilisateur est en mousse, il ajustera les paramètres sur "low".

  12. #12
    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
    alors juste une différence entre deux dates un choppée au début du traitement
    et l'aitre à la fin ..
    mais les résultats peuvent être aléatoires ...
    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 !

  13. #13
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Un test de performances nécessite forcément de « pousser » les performances. Avec le risque que l'utilisateur se rende compte que le site est CPU-vore, et cesse de le fréquenter. Mais c'est un choix à faire. Il y a une juste valeur à trouver entre deux extrêmes, un script qui va freezer longtemps mais donner un résultat fiable, ou au contraire un discret mais aux résultats un peu chaotiques.

    C'est un peu un problème d'ergonomie en fait. Pour moi, l'idéal serait de proposer à l'utilisateur de choisir le mode « high » ou « low », ou de lancer manuellement le test de performance.

    Sachant qu'il faut prendre en compte aussi le fait que les navigateurs peuvent prendre la main quand un script boucle, afficher une sorte d'alert qui attend un clic pour continuer, et cette interruption fausse le test.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

Discussions similaires

  1. Calculer la performance d'un script javascript
    Par nicko_73 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/11/2009, 16h37
  2. [Forum] Script pour calcul de point tennis
    Par drogba72 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 10
    Dernier message: 23/04/2008, 03h23
  3. SCRIPT de calcul automatique, formulaire de commande
    Par bc.dumon dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/04/2008, 11h32
  4. Réponses: 4
    Dernier message: 28/09/2007, 14h22
  5. wsh VBS script de calcul de salaire net
    Par heinquoi dans le forum VBScript
    Réponses: 2
    Dernier message: 14/02/2007, 20h51

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