Bonjour à tous,
Je me suis inspiré d'une application développée en VB pour faire une autre application en Java. Ces deux applications font absolument les mêmes choses, tournent sur des postes client en local toutes les deux, donnent les mêmes résultats (des statistiques sur des listes de discussion), sauf que celle en VB le fait en 5 minutes, et la mienne (en Java) en 3 heures !
J'ai chronométré les différents processus de mon appli mais je n'arrive pas bien à voir où et pourquoi j'ai des temps de calcul aussi long.
D'où mes questions :
- je me sers d'h2 pour la base de données : est-ce la plus rapide ?
- certaines requêtes comme les "update" ou les "select" sont super longs
- j'avais entendu des trucs sur la boucle for : comme j'en utilise plein, est-ce que cela peut ralentir mon application ? si oui, qu'utiliser ?
- vaut-il mieux faire des requêtes sur une bdd ou écrire dans des fichiers (j'ai l'impression que ce dernier prend moins de temps!!)
- quel est le plus rapide dans la création/lecture/accession/manipulation entre un ArrayList, un tableau normal, un hashset, un tableau chaîné (même si je sais que tous ces tableaux sont très particuliers et réservés à des utilisations précises, je ne sais jamais lequel choisir lorsque ce que j'ai à faire dessus les concerne tous !!)
- lorsqu'on a un long traitement à faire, vaut-il mieux séparer les processus le plus possible (faire plein de void qu'on appelle d'une classe principale) ou faire un gros void énorme ?
- dans le même ordre d'idées, faut-il cloisonner ou décloisonner son programme, faire plein de classes très courtes, ou peu de classes très longues ?
Donc voilà, en gros, je me demande comment on optimise son code JAVA (hors algo car c'est un autre problème !) ???!!!
Merci à tous de vos nombreuses aides et réponses et orientations !
mc





Répondre avec citation








, et ma question ne portait pas sur un problème particulier (c'est pour ça que je ne vous donne aucune source) mais sur la question plus générale des choix qu'on a à faire à certains moments ... enfin je le pensais, car justement, ce que vous m'avez appris, ou plutôt confirmé, c'est que l'algorithme est ce qu'il y a de plus important ... enfin je le savais mais dans mon projet actuel, je développe pendant 2 semaines, je fais autre chose pendant 2 mois (je suis statisticien), je redéveloppe pendant 1 semaine, je refais autre chose pendant 3 mois ... etc, donc c'est un peu dur d'avoir une vision d'ensemble à chaque fois ... du coup je me retrouve avec une super appli, mais qui tourne super lentement parce que je fais les choses 10 fois au lieu de les faire 1 seule fois et que je développe à la bourrin !!! donc quand je parlai d'optimisation, c'était pour demander si il n'y avait pas quelques pièges grossiers à éviter ...

Partager