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 :

lenteur d'application c++ sur windows server 2003


Sujet :

C++

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Points : 2
    Points
    2
    Par défaut lenteur d'application c++ sur windows server 2003
    Bonjour

    J'ai développé une application sous c++ qui fait un traitement sur 29 000 produits.

    Lorsque je la lance sur un windows XP le traitement dur une dizaine de minute par contre sous windows server 2003 il ne se termine jamais (il traite une centaine de produits en plus 1/4 d'heure).

    Est-ce que quelqu'un saurait pourquoi ?

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Bonjour et bienvenu,
    Difficile de répondre comme ça. Peux tu donner un peu plus de détails sur ton appli (MFC, BDD ? réseau ? Multithread ? etc.). As-tu identifié ce qui consommait du temps en instrumentant ton application ?

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Il y a bien une requête SQL que je lance grâce à BDE et odbc mais elle passe sans problème et je stock tout les résultats de la requête dans un tableau.
    Puis je traite chaque ligne du tableau une par une.

    Dans ma boucle ce sont juste des calculs et des conditions, il y a bien un accès a un ficher ini qui est sur un serveur mais lors du lancement sur un ordi xp qui doit y accéder par le réseau c'est très rapide alors que lorsque l'on lance cette même appli sur le serveur en question cela met une éternité.

    Logiquement les calculs devraient être plus rapide avec un processeur plus puissant.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 70
    Points : 88
    Points
    88
    Par défaut
    Quelle est l'utilisation CPU ? Il mouline ou bien il attend quelque chose ? (réseau, disque...)

  5. #5
    Membre éprouvé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Points : 937
    Points
    937
    Par défaut
    Mes applis aussi ont des performances "variables" en fonction des serveurs. Mais se sont des serveurs, c'est-à-dire qu'ils font d'autres choses en plus de mes applis. Il y a notemment SQL Server dessus avec 7 DB de plusieurs dizaines de gigas chacune. Le disque dur est manifestement le goulot d'étranglement.

  6. #6
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Sur un windows XP 1 cœur il tourne a 100%
    sur un autre XP 2 cœurs il tourne a 50% les 2
    et sur le serveur les cœurs que monte chacun leur tour a 90%

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 70
    Points : 88
    Points
    88
    Par défaut
    Il vaut mieux vérifier l'utilisation CPU de ton process dans la liste des process, car parfois tu es à 100% mais c'est autre chose qui bouffe. Genre là ça pourrait être la BDD...

  8. #8
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Sur le serveur mon application utilise a peu près 13% du CPU.
    Cela correspond bien a l'utilisation d'un cœur a 100%

    Mais pourquoi il n'utilise que 1 seul cœur à la fois sur le serveur alors que sur les autres PC il utilise tous les cœurs dispos?

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 70
    Points : 88
    Points
    88
    Par défaut
    Je suppose que ton appli n'a qu'une seule thread ou process, donc pas de parallélisme, donc elle n'utilise qu'un seul core. Mais si l'ordi est peu chargé, l'OS va rapidement passer ton appli d'un core à l'autre pour qu'ils chauffent tous un peu, au lieu de faire chauffer beaucoup un core... donc les pourcentages sont pas à prendre au premier degré...

    Sinon il te reste plus qu'à profiler pour savoir où ça rame.

  10. #10
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Je travaille sous c++builder 2007.

    Je pense que tu as raison mais je ne sais pas si c'est mon compilateur que gère ça ou si je peux le modifier pour utiliser plusieurs processeurs.

  11. #11
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Points : 588
    Points
    588
    Par défaut
    Le compilateur ne transforme pas magiquement ton application monothread en une application multi-thread/multi-coeurs, non .

    Lances ton debugger et regardes ce qu'il se passe.

Discussions similaires

  1. Déploiement application MVC3 sur windows server 2003
    Par alexxxx69 dans le forum ASP.NET MVC
    Réponses: 4
    Dernier message: 13/12/2011, 17h02
  2. Ressources publiees sur windows server 2003
    Par saphir54321 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 25/04/2008, 13h06
  3. deployer exchange sur windows server 2003
    Par gasper06 dans le forum Exchange Server
    Réponses: 0
    Dernier message: 17/12/2007, 14h50
  4. Supervision sur Windows Server 2003
    Par mkaffel dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 24/11/2007, 07h55
  5. Application Delphi 6 qui plante sur Windows Server 2003
    Par david_chardonnet dans le forum Langage
    Réponses: 1
    Dernier message: 12/01/2006, 15h20

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