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

JavaFX Discussion :

Conseils d'optimisation pour JavaFX Mobile (& Desktop aussi)


Sujet :

JavaFX

  1. #1
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 838
    Points : 22 846
    Points
    22 846
    Billets dans le blog
    51
    Par défaut Conseils d'optimisation pour JavaFX Mobile (& Desktop aussi)
    L'article suivant qui contient des conseils sur les optimisation des applications JavaFX Mobile a ete poste chez Sun :http://java.sun.com/developer/techni...ile/index.html
    Ces optimisations sont bien sur egalement applicables sur JavaFX Desktop.

    • Eviter le binding quand cela n'est pas necessaire. Lui preferrer les trigger replace si possible. Et surtout eviter de binder a tout va ce qui peut etre replacer par des constantes (ex: si la resolution du telephone ne change pas, et si votre peripherique ne supporte pas la rotation d'ecran, pas la peine de faire des binding sur le changement de taille de la scene).
    • Ne surchargez pas le graphe de la scene avec des noeud inutilement invisibles.

      Attention cependant cote Desktop il existe des bugs dans SceneGraph nottament lorsqu'on utilise des composants Swing qui font que parfois les ajouter de maniere invisible est l'unique maniere de faire.
    • Utiliser des formes simples a la place d'images mais si les formes deviennent trop compliquees (effets + transformations), utiliser une image a la place.
    • Utiliser le prescaling (remise a l'echelle precalculee) en ecrivant les valeurs width et height de l'objet Image. Cela evite une remise a l'echelle dynamique de l'objet ImageView.
    • Utiliser le chargement en fond en utilisant le champs Image.backgroundLoading pour forcer un chargement asynchrone et accelerer le chargement de l'application.
    • definir les variables en tant que def plutot que var.
    • Utiliser Integer plutot que Number quitte a specifier explicitement le type de certaines variables (si vous le speficiez pas JavaFX determinera peut-etre qu'elles sont de type Number).
    • Utiliser les fonctions de la classe Sequences plutot que d'implementer vos propres fonctions de manipulation de sequences.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Février 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 284
    Points : 409
    Points
    409
    Par défaut
    Salut Bouye, as tu plus de précisions quand à l'utilisation de def plutôt que var. Il y a quelques temps, je m'étais amusé à changer les binaires du SDK par ceux des builds de l'openjfx compiler. Eh bien j'obtenais un avertissement sur tous les trucs du genre:
    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
     
    var node: Node =  ...
    ...
    function doAnim(): Void {
    Timeline {
                    keyFrames : [
                        KeyFrame {
                            time : actionAnimSpeed/2*1s
                            action: function() { 
                                node.translateX = tx;
                                node.translateY = ty
                            }
                        }
                    ]
                }.playFromStart();
    ...
    il était stipulé qu'il fallait faire comme ça:
    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
     
    var node: Node =  ...
    ...
    function doAnim(): Void {
    def _node = node;
    Timeline {
                    keyFrames : [
                        KeyFrame {
                            time : actionAnimSpeed/2*1s
                            action: function() { 
                                _node.translateX = tx;
                                _node.translateY = ty
                            }
                        }
                    ]
                }.playFromStart();
    ...
    Si bien que j'ai réécris pas mal de choses dans ce goût là pour anticiper la montée de version, j'espère que je ne me suis pas trompé.

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 838
    Points : 22 846
    Points
    22 846
    Billets dans le blog
    51
    Par défaut
    N'utilisant pas l'openjfx je ne peut pas trop te dire. On en saura probablement plus avec les release notes de la prochaine version.

    Moi ce qui m'amuse toujours (enfin amuser n'est pas trop le bon mot) c'est des trucs du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var bidule = bind ....
     
    [...]
     
    Chose {
       machin: bind bidule...
    }
    Comme NetBeans se plaint et indique que si je bind sur bidule declare en var, il n'y aura pas de notification, je suis oblige de faire ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def bidule = bind ....
     
    [...]
     
    Chose {
       machin: bind bidule...
    }
    sachant que le didacticiel de JavaFX insiste sur le fait que def ce sont des constantes... bref.. un probleme similaire (mais pas tout a fait identique) a final en Java. le mot-cle est un parapluie pour plusieurs fonctionnalites pas trop compatibles entre elles a premiere vue (ou du moins ce n'est pas forcement evident pour le novice).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. Besoin de conseils pour débutant mobiles
    Par mister3957 dans le forum Mobiles
    Réponses: 7
    Dernier message: 08/10/2014, 15h44
  2. [65816] Quelques conseils de programmation pour optimiser le code
    Par Kannagi dans le forum Autres architectures
    Réponses: 7
    Dernier message: 12/03/2014, 13h18
  3. Réponses: 20
    Dernier message: 18/02/2013, 11h28
  4. [LeafLet] Des cartes (géographiques) interactives optimisées pour les mobiles
    Par FirePrawn dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 12/11/2012, 11h31
  5. Réponses: 4
    Dernier message: 18/11/2010, 21h16

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