-
Lancement lent
Salut je me demandé pourquoi les applications faites avec javaFX mette plus de temps a ce lancer que celle faite avec Swing par exemple ?
J'ai vu que certaine personne parlait d'un proxy a désactiver si c'est le cas je me demande pourquoi javaFX aurait besoin de se connecter a un serveur ?
-
Quelle version de Java ? Quelle version de JavaFX ? Quel mode de lancement d'application ?
Si tu utilises une ancienne version (1.x ou 2 pour JDK 6) alors effectivement, les applets/application web start doivent d'abord télécharger les runtimes.
Ici en JavaFX 8 32 ou 64 bit pas vu de lenteur notable sur un PC de bureau ou portable (Windows, Linux, Mac OS X) par rapport a Swing.
Globalement JavaFX 8 est plus rapide que JavaFX 2.2 (mais pas exempt de bugs, notamment celui assez pénible qui fait que la surface de l'application devient parfois toute noire pendant quelques secondes).
J'ai trouve le lancement d'app JavaFX 8 plutôt lent sur Raspberry Pi mais impossible de comparer avec Swing puisque Swing n'est pas disponible sur la version embedded.
De toute manière même un programme Java en ligne de commande s’exécute lentement sur Raspberry Pi...
-
j'utilise java 7 (trop de bug sur mes apps Swing avec la version 8 bizarre d’ailleurs) sinon pour FX je pense que c'es la dernière en tous cas j'utilise scene builder version 2.2 concernant le mode de lancement que veux tu dire ?
sinon pour le Raspberry ca ne m'étonne pas Java c'est rapide mais il faut beaucoup de Ram mais normalement pas avec la version embedded mais je n'ai pas encore tester donc je sais pas.
Merci pour ta réponse
-
Les modes de lancement incluent :
- le mode standalone : en double-cliquant sur le JAR (pas possible sans bidouilles avec le JDK7 car les runtimes de JavaFX 2.2 ne sont pas sur le CLASSPATH), en invoquant directement l’interpréteur java sur la ligne de commande ou dans un fichier batch ou via un launcher natif.
- via Java Web Start en cliquant sur une icône sur le bureau ou le menu Démarrer ou un lien dans une page web.
- via une applet incluse dans une page web.
-
Pour moi c'est donc en Standalone sans aucune bidouille (double click sur un jar généré avec mon IDE)
-
Alors retour sur ce sujet que j'ai un peu délaissé.
Tout d'abord il y a quand même des améliorations de performances quand on utilise JavaFX avec le JDK 8 et le JDK 8_u20.
Cependant, plusieurs topics sur OTN indiquent qu'il y a des dégradations de performances (qui peuvent donc impacter le lancement de l'application) dans deux cas de figure :
- utilisation d'un FXML contenant trop de directives <fx:include>
- utilisation de FXML contenant trop de propriétés statiques sur ses éléments (genre VBox.hGrow, AnchorPane.topAnchor, etc.).
Ces dégradations seraient dues au fait que le FXMLLoader utilise l'API de reflection lors du chargement du contrôle (en même temps, il n'y a pas 36 solutions si on veut faire du code passe-partout).