2 votes

Test d'une application Swing

Je travaille sur une application Java Swing utilisant Hibernate. J'ai utilisé NetBeans IDE pour construire mon application.

J'ai environ 13 sous-modules. J'ai utilisé JInternalFrames pour construire ces sous-modules. Et 4 rapports qui utilisent JasperViewer.

Le chargement de mon application prend environ 2 à 3 minutes. Et lorsque je passe d'un module à l'autre, le chargement de chaque module prend beaucoup de temps.

Je dois maintenant vérifier les points suivants

  1. Comment vérifier la mémoire et l'unité centrale de toute mon application Swing et quelle classe utilise le plus d'unité centrale et de mémoire ?

  2. Comment tester mon application en utilisant des approches simples ?

  3. Comment augmenter la performance de mon application swing ?

3voto

a_horse_with_no_name Points 100769

Comme vous utilisez NetBeans, utilisez le profileur interne. C'est l'outil qui vous permet d'obtenir des informations détaillées sur les endroits où vous perdez du temps.

Pour plus d'informations, consultez le site de NetBeans, par exemple.

3voto

Stephan Points 1962

Les temps de démarrage de ce type ne sont pas simplement dus à l'existence d'une application dotée d'un grand guide. Je pense que le problème se situe au niveau de l'accès à la base de données. Des questions se posent :

  • Utilisez-vous la fonction de chargement paresseux d'Hibernate ? Il s'agit d'une fonctionnalité intéressante, mais qui peut poser quelques problèmes si elle n'est pas utilisée de manière responsable. Lire cette .
  • Les données de la base de données sont-elles mises en cache dans votre application ou sont-elles extraites de la base de données à chaque action ? Un bon moyen de réduire les temps de chargement est de stocker les données dans une table de hachage (HashMap). Hibernate dispose également de son propre module caches .
  • Vous récupérez une grande partie de votre base de données ? Ce n'est pas souhaitable, une meilleure conception du schéma de la base de données peut éviter cela, de même que le chargement paresseux.
  • Votre application est-elle multithread ? Le chargement des données en dehors du fil d'exécution de l'événement peut s'avérer très avantageux.

Pour répondre à vos questions :

  1. L'outil le plus simple est fourni avec chaque JDK : jVisualVM Vous pouvez stocker des fichiers .hprof et les analyser dans un autre outil. Les outils d'analyse de la mémoire ou l'outil Profiler Netbeans sont également un bon choix. Vous pouvez également lire cette pour plus d'informations.
  2. Cela dépend de ce que vous voulez tester. Les classes ( JUnit ), l'interface graphique ( UISpec4J ), ou voulez-vous parler de profilage plutôt que de test ?
  3. Vous pouvez améliorer les performances en mettant les données en cache, en utilisant le chargement paresseux ou en rendant votre application multithread, comme indiqué ci-dessus. Vous pouvez également lire ici comment y parvenir.

0voto

roesslerj Points 564

En ce qui concerne vos questions :

pour 3. Mesurez d'abord, puis coupez. Dans la plupart des cas, quelques changements simples peuvent vous permettre d'améliorer vos performances de 80 %.

pour 1. VisualVM est un excellent outil gratuit qui vous aidera à mesurer la consommation du processeur et de la mémoire. Modifiez ensuite exactement (et uniquement) ce code en conséquence.

pour 2. Je vous suggère de jeter un coup d'œil sur ReTest . Il s'agit d'un outil relativement nouveau qui met en œuvre une approche innovante des tests de régression fonctionnelle combinée à des tests de singe basés sur l'intelligence artificielle.

Clause de non-responsabilité : je suis l'un des fondateurs de la société à l'origine de ReTest.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X