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

Messages postés
53
Date d'inscription
dimanche 29 mai 2005
Dernière intervention
16 mars 2009
- 23 sept. 2008 à 19:57 - Dernière réponse :
Messages postés
53
Date d'inscription
dimanche 29 mai 2005
Dernière intervention
16 mars 2009
- 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 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
5293
Date d'inscription
dimanche 4 mai 2003
Dernière intervention
19 novembre 2018
- 23 sept. 2008 à 22:33
3
Merci
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

Merci Twinuts 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de Twinuts
Messages postés
53
Date d'inscription
dimanche 29 mai 2005
Dernière intervention
16 mars 2009
- 23 sept. 2008 à 20:02
0
Merci
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
Messages postés
53
Date d'inscription
dimanche 29 mai 2005
Dernière intervention
16 mars 2009
- 24 sept. 2008 à 22:19
0
Merci
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.