Bonjour,
Pour mon travail je dois réaliser un outil de simulation multi-agent, en physique.
Imaginez un grand nombre de particules dans un espace en 2D. Chaque particule à ses coordonnés (x,y) et se déplace au hasard sur le plan.
Chaque fois qu'une particule se rapproche d'une autre elle est repoussé suivant une fonction mathematique assez lourde (avec des exponentielles).
Comment j'ai procédé :
En gros j'ai un Thread principal qui contient une boucle. Cette boucle calcul la prochaine position de chaque particule en fonction de toute les autre (il faut les comparer une à une). Lorsque toutes les particules sont mise à jour, j'incremente le temps de simulation et je recommence.
Apres quelques semaines de boulot mon programme JAVA est pret. Mais malheurs, dès que le nombre de particule dépasse une soixantaine, le programme rame comme pas possible (avec ou sans affichage graphique). L'utilisation normal c'est au moins avec 500 voir 1000 agents en meme temps.
Je peux pas rendre ce prog, il faut que je l'optimise un peu, mais je ne sais pas du tout comment faire. Est ce que vous pourriez me donner quelques conseils ?
Quel genre d'operations est le plus lourd ?
y a t il des 'trucs' pour aller plus vite?
Est ce que j'ai bien fait de choisir Java?
Est ce que c'est plutot lié au pc moyennement performant ou au programme mal codé ?
Existe t il des outils qui permette d'optimiser automatiquemnt un code?
Existe t il des outils qui permette de mesurer la "lourdeur du code" ?
MErci pour votre aide.
a+
Partager