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

Langage Delphi Discussion :

Temps d'exécution Duo Core et Simple Core


Sujet :

Langage Delphi

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut Temps d'exécution Duo Core et Simple Core
    Bonjour,

    Je ne sais pas trop où poser ma question, je tente ici.
    J'ai une application delphi7 dont un traitement consiste à transformer un fichier texte en un autre fichier texte.
    Sur une machine 2,8ghz duo core + 2ghz de memoire le traitement dure 5h.
    Sur une machine 2.8Ghz (simple core) + 1 Ghz de memoire le traitement dure 3h50.

    J'en déduis donc que le duo core est la cause du temps de traitement plus long. Savez vous comment optimiser son utilisation afin d'obtenir des temps similaires que ceux de la machine simple core?

    Merci!

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    à mon avis je pense que les performances sont dépréciées sur un double-coeur parce que ton traitement ne doit pas être multi-threadé et comme les double-coeur sont spécifiquement conçus pour être performants pour des traitements multi-threadés...

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    C'est bien ce qui me semblait. Sur le simple coeur le processeur est utilisé à 100% et sur le double coeur il est utilisé à 50%.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Points : 397
    Points
    397
    Par défaut
    C'est normal que pour un processeur double core un processus non multithreadé n'occupe jamais plus de 50%. Ce qui l'est moins c'est que les temps soient différents pour un simple et un double core. Est-ce que ces deux processeurs utilisent la même architecture pour leurs core (core2, core, pentium 4, core i7, athlon...) ?

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 577
    Points : 25 225
    Points
    25 225
    Par défaut
    En fait, le 50% sur un double-core correspond à un 100% sur l'un des Core !
    Sur un système avec bi-Processeur quadri-core, un process à fond ne prendra que 12% ... (je te conseille d'afficher les graphiques en mode un par UC, option du gestionnaire des taches)
    Ensuite, l'une des causes de ralentissement, c'est que Windows parfois change des process de coeur.
    Avec un vieux EasyPHP 1.8 et MySQL 4.1, on a vu les performances se déteriorer sur les requêtes longues parce que MySQL et Window se dispute sur le choix du Core ... mais il n'y a pas que cela qui peu poser problème, tu peux avoir par exemple un DD moins performant ou un système de réplication de données (genre RAID 5) qui ralenti le système (ce qui arrive sur des serveurs où la robutesse peu parfois primer sur l'efficacité)

    Sinon, avec un simple-core, tu peux aussi faire un thread, car il faut savoir que les opérations lente comme la lecture de DD peuvent être l'opportunité pour l'OS d'affecter du temps CPU à un autre process ... avec les double-core, le gain sera évidemment de loin supérieur ... avec l'orientation technologique actuel, on peut parier sur la multiplication des core ...

    Si tu veux tester, juste l'efficacité du processeur (5-6 ms sur un P4 HT 3Ghz) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var
       Chrono: Cardinal;
       i, m: integer;
    begin
         Chrono:= GetTickCount;
         for i := 0 to 1000000000 do
         begin
         end;
         Chrono:= GetTickCount - Chrono;
         MemoResult.Lines.Add('For 1000000000, Temps en ms : ' + IntToStr(Chrono));
    end;
    GetTickCount n'est pas très précis, voir QueryPerformanceCounter

  6. #6
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    ok, merci pour ces précisions.
    pour info, le test me donne
    Temps en ms : 609

  7. #7
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    Citation Envoyé par sovitec Voir le message
    C'est normal que pour un processeur double core un processus non multithreadé n'occupe jamais plus de 50%. Ce qui l'est moins c'est que les temps soient différents pour un simple et un double core. Est-ce que ces deux processeurs utilisent la même architecture pour leurs core (core2, core, pentium 4, core i7, athlon...) ?
    ce sont deux P4.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Février 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 141
    Points : 142
    Points
    142
    Par défaut
    Salut,

    Je rajoute une couche à ce que dit ShaiLeTroll :
    Tu parles de traitements qui durent 5h. Est-ce le traitement lui-même qui est long (i.e. : le programme lance un calcul qui prend des plombes, et stocke un fichier de 1Mo à la fin), ou les fichiers qui sont énormes (par exemple : tu prend un fichier de 4Go et tu supprimes toutes les lettres accentuées)?

    Des différences de perf entre deux processeurs peuvent venir de la taille du cache L1 et L2 de chacun. Tu as ces données pour chacune de tes machines de test?

    Si ce sont les fichiers qui sont énormes, les causes de ralentissement peuvent venir de plein d'endroits différents...

    Est-ce que sur les deux machines test tu as le même modèle de disque dur? de RAM? à quelle vitesse sont cadencés tes bus mémoire? ...



    Pour des traitements d'énormes quantités de données, la manière dont tu parcours ces données a une énorme influence sur les perfs. Peux-tu être plus précis sur ce que tu fais avec tes fichiers?

    *LeGEC*

  9. #9
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut Tiles et résolution de l'écran
    En fait il s'agit de gros fichiers, et d'un temps difficilement compressible donc ce n'est pas grave si c'est long.
    Je me demandais juste comment s'expliquait la difference entre un duo core et un simple core.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quad core 2, intel core 2 duo et java
    Par Battant dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 22/12/2008, 22h07
  2. [phpMyAdmin] Exécuter PhyMyAdmin sous Linux (Fedora Core 6)
    Par Siguillaume dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 17/10/2007, 20h17
  3. Réponses: 2
    Dernier message: 25/05/2004, 15h33
  4. Affichage du temps d'exécution d'une requête
    Par milka dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 22/03/2004, 17h48
  5. Temps d'exécution des instructions FPU
    Par ubi dans le forum Assembleur
    Réponses: 2
    Dernier message: 24/10/2003, 18h39

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