IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Toujours dans le meme thread !


Sujet :

C#

  1. #1
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut Toujours dans le meme thread !
    Bonjour,

    J'essaye de lancer pas mal de threads afin de simuler un test de charge avec le code ci-dessous, et je m'appercois dans le perf monitor de windows qu'il n y a qu'un seul thread a 100%
    Une idée ?

    Dans la partie traitement (...) je reçois des données afin de les comptabiliser.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    for (int i = 0; i < 1000; i++)
                    {
                        var j = i;
     
                        var thread = new Thread(() =>
                        {
                           ...
     
                                    for (int m = 0; m < 100; m++)
                                    {
    					...
                                    }
     
                        });
                        //waitHandles[j] = handle;
                        thread.Start();
     
                    }
                }
    Merci
    MCTS Microsoft.
    La conception : Prendre le temps pour gagner du temps.

  2. #2
    Membre éprouvé Avatar de worm83
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Février 2010
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2010
    Messages : 459
    Points : 1 118
    Points
    1 118
    Par défaut
    Processus != Thread.

    1 processus peut avoir une multitude de threads.

    si tu veux voir ce qui se passe, il va falloir que tu fasse ce que l'on appel du profiling.
    "Le train de tes injures roule sur le rail de mon indifférence."

    "Monde de merde !!"

    Georges Abitbol.

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    un thread à 100% ne veut rien dire
    en effet le processus héberge des threads, et ce sont des cores du processeur après qui montent en charge

    par contre ton code devrait fonctionner et tous les coeurs devraient être utilisés, tu confirme qu'un seul coeur monte à 100 %

    après démarrer 1000 threads n'est pas génial, ca perd en performances dès qu'on dépasse ce que faire le processeur (ratio entre le nombre de coeur et le temps de traitement nécessaire, souvent un thread ne travaille pas tout le temps)

    après un thread qui incrémente une variable de 0 à 100 ce n'est pas significatif, c'est trop rapide je pense
    il vaut mieux faire une boucle d'une durée déterminée qui incrémente un double de 0.1 par exemple
    ca serait une piste pour dire qu'un seul coeur est utilisé, celui qui créé les threads ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre éprouvé Avatar de worm83
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Février 2010
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2010
    Messages : 459
    Points : 1 118
    Points
    1 118
    Par défaut
    Pour compléter pol, tu peux aussi utiliser les calculs parallèles.

    D'ailleurs il vaut mieux utiliser les Task. Task est une librairie moderne d'utilisation des Thread, pensé pour l'asynchronisme/parallélisme, qui saura mieux gérer que toi le nombre de Thread à créer, ou quand les recycler ect....

    http://blogs.msdn.com/b/devpara/arch...es-part-2.aspx
    "Le train de tes injures roule sur le rail de mon indifférence."

    "Monde de merde !!"

    Georges Abitbol.

Discussions similaires

  1. Netbeans compiler toujours dans la meme fenetre output
    Par gerardpuducul dans le forum NetBeans
    Réponses: 1
    Dernier message: 11/09/2008, 13h29
  2. Réponses: 1
    Dernier message: 05/10/2005, 15h13
  3. Definir deux site dans un meme serveur
    Par soufienne dans le forum IIS
    Réponses: 4
    Dernier message: 02/09/2004, 11h32
  4. COMMENT METTRE 2 CHAMPS DANS LE MEME DBLOOKUPCOMBOBOX
    Par ledevelopeur dans le forum Bases de données
    Réponses: 2
    Dernier message: 27/07/2004, 15h15
  5. Copier un ensemble d'enregistrement dans la meme table
    Par SergeF dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/07/2004, 18h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo