Problème de processus

cs_crazysetup Messages postés 30 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 février 2010 - 18 mai 2008 à 14:00
LandTech Messages postés 73 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 28 février 2011 - 28 févr. 2011 à 19:52
Bonjour a tous, j'ai un projet en java dans lequel je reprends une aplication qui scanne les ports d'une machine distante connue oar son IP et renvoie leur état.
Le code comprend une partie ou 151 processus sont lancés via un tableau de Threads List<Thread>.
Ma tache consiste à optimiser la mémoire consommée par l'application et donc réduire le nombre de processus déclenchés au lancement du scan.
Comment dois-je faire et connaissez vous d'autres moyens d'optimiser la mémoire d'une application ?
Merci de vos réponses
Je peux vs donner le code si nécessaire

1 réponse

LandTech Messages postés 73 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 28 février 2011
28 févr. 2011 à 19:52
Bonjour,

Je ne suis pas expert du Java, mais à première vue, il est complètement inutile, voir même dangereux, d'exécuter 151 threads en simultanés.

Je m'explique, le processeur ne peut traiter qu'une seule tâche par coeur.
La notion de thread est une simulation de la simultanéité du traitement du processeur. En effet, l'OS va accordé à chaque thread un laps de temps relativement court pour poursuivre son exécution, ce qui créera l'illusion que les threads s'exécutent en même temps. Dans le cas d'un nombre trop important de threads, l'OS va passer son temps à switcher entre ceux-ci, ce qui au final le ralentira. Ceci est valable pour un processeur mono-coeur. Dans le cas d'un processeur multi-coeur, le processeur peut exécuter autant de threads qu'il a de coeur en réelle simultanéité, c'est la programmation parallèle.

Je conseille donc de lancé simultanément entre 25 et 50 threads, 75 maximum. Le nombre variant selon la puissance du processeur, le type de processeur (mono-coeur ou multi-coeur) et le Système d'exploitation sur lequel l'application tournera.

Cordialement,

LandTech
0
Rejoignez-nous