Connaitre le nombre de coeur dans la machine [Résolu]

Icarius44 53 Messages postés dimanche 29 mai 2005Date d'inscription 16 mars 2009 Dernière intervention - 23 sept. 2008 à 19:57 - Dernière réponse : Icarius44 53 Messages postés dimanche 29 mai 2005Date d'inscription 16 mars 2009 Dernière intervention
- 24 sept. 2008 à 22:19
Bonjour tous,

Je suis à la recherche d'une fonction me donnant le nombre de coeur de la machine lors de l'exécution.
J'ai explorer :
- System.getProperties() : nada
- Runtime.getRuntime().availableProcessors() mais il me donne 1 sur linux, et 2 sur windows :|
- System.getenv("NUMBER_OF_PROCESSORS"); mais ça ne donne ce qu'il faut :) mais que sur windows :( Sur linux j'ai un beau null...

Je me suis résolut à mettre 2 par défaut, mais c'est quand même nulle quand on tourne sur des quad core voir plus.

a votre bon coeur pour une solution ;)
Afficher la suite 

3 réponses

Répondre au sujet
Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscription 20 avril 2018 Dernière intervention - 23 sept. 2008 à 22:33
+3
Utile
Salut,

j'ai également fait les même tests mais je n'ai pas les même résultats... java détecte bien les 2 coeurs
OS :  ubuntu 8.04
Kernel : 2.6.24-19-generic
CPU : Intel(R) Core(TM)2 Duo CPU T5450 @ 1.66GHz
le code utilisé :

import java.util.Enumeration;
import java.util.Hashtable;

import static java.lang.System.out;

public class Test {

        public static void main(String ...args) {
                out.println("Properties : ");
                Hashtable<Object, Object> props = System.getProperties();
                Enumeration<Object> keys = props.keys();
                while(keys.hasMoreElements()) {
                        Object key = keys.nextElement();
                        out.println(key + " : " + props.get(key));
                }
                out.println("availableProcessors : " + Runtime.getRuntime().availableProcessors());
                out.println("NUMBER_OF_PROCESSORS : " + System.getenv("NUMBER_OF_PROCESSORS"));
        }
}

les résultats :
Properties : <...>rien<...>
availableProcessors : 2
NUMBER_OF_PROCESSORS : rien mais je suis pas surpris

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Twinuts
Icarius44 53 Messages postés dimanche 29 mai 2005Date d'inscription 16 mars 2009 Dernière intervention - 23 sept. 2008 à 20:02
0
Utile
Bonjour tous,

Je suis à la recherche d'une fonction me donnant le nombre de coeur de la machine lors de l'exécution.

J'ai exploré :
- System.getProperties() : nada
- Runtime.getRuntime().availableProcessors() mais il me donne 1 sur linux, et 2 sur windows
- System.getenv("NUMBER_OF_PROCESSORS"); mais ça ne donne ce qu'il faut mais que sur windows Sur linux j'ai un beau null...

Je me suis résolut à mettre 2 par défaut, mais c'est quand même nulle quand on tourne sur des quad core voir plus.

a votre bon core pour une solution ;)
Commenter la réponse de Icarius44
Icarius44 53 Messages postés dimanche 29 mai 2005Date d'inscription 16 mars 2009 Dernière intervention - 24 sept. 2008 à 22:19
0
Utile
J'ai tester sur ubuntu 7.10. Etrange qu'on ai pas les même résultat.
Enfin bon, je m'en contenterai (en considérant le availableProcessors comme pas forcement fiable)

merci des test ;)

Icar
Commenter la réponse de Icarius44

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.