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 :

[C# Framework 3.5] Perte de performance using


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    556
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 556
    Par défaut [C# Framework 3.5] Perte de performance using
    Bonjour,

    Je vais essayer d'être le plus clair possible

    J'ai un traitement qui tourne en boucle pour avaler un certains nombre de fichier

    D'après mes stats, le premier fichier prend beaucoup plus de temps que les autres à être traités.. (çà peut être 50 s au lieu de 2)
    Après analyse, je me rends compte que c'est le premier accès à de chacun des webservices qui prend du temps (exemple d'appel ci-dessous) oet aussi le premier accès à la base de données

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    using (var proxy = new WsCatalog.Service())
                    {
                        WsCatalog.ResponseOfPrefixOperator result = proxy.LoadPrefixOperator(numTel);
                        return result.Data.Name;
                    }
    J'ai le sentiment qu'une fois le premier using passé, tout se passe très vite après

    Je cherche à faire en sorte que mon traitement soit le plus rapide possible quite à ce qu'il y ait un peu de préparation avant de traiter le premier fichier afin que les perfs stattées reflètent la réalité au plus près

    En vous remerciant par avance de votre aide

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    556
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 556
    Par défaut
    J'ai le même problème avec mon accès à la BD

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     using (connection = new SqlConnection(_connectionString))
                    {
                        connection.Open();
                        command = connection.CreateCommand();
    Premier passage, une vingtaine de seconde ensuite c'est quasi instantané

  3. #3
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Il est normal que les premiers appels soient plus lents, du fait de l'utilisation du compilateur JIT qui convertit le MSIL en code natif.

    Mais, 20 secondes c'est peut-être beacoup pour être expliqué par les temps de conversion MSILvers code natif.

    Le problème persiste-t'il si on ferme le programme et on relance immédiatement ?

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    556
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 556
    Par défaut
    Bonjour,
    Oui le problème persiste... J'ai trifouillé mon code dan tous les sens mais rien à faire

    Pour la partie WebService, avant de rentrer dans mon traiteemnt, je fais un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    using(new Mon-WebService.Service())
    afin que la première "instanciation" ne soit pas pris en compte dans le temps mise à l'éxécution du traitement

    J'ai gagné une trentaine de secondes

    Ne me reste plus que les secondes de connexion à la BDD que je n'arrive pas à compresser...Enfin tout du moins à contourner pour améliorer les stats de t
    temps de réponse

    J'ai essayé d'appliquer le même principe en ne créant qu'une connexion / commande au démarrage mais cela n'y a rien changé....

    J'ai presque l'impression que c'est le premier ExecuteNonQuery qui prend du temps

Discussions similaires

  1. estimation pertes de performance avec URL Rewriting ?
    Par clavier12AZQSWX dans le forum Apache
    Réponses: 1
    Dernier message: 12/04/2009, 22h43
  2. Réponses: 6
    Dernier message: 04/12/2008, 23h01
  3. Réponses: 4
    Dernier message: 12/06/2007, 09h17
  4. Perte de performance
    Par stoyak dans le forum Réseau
    Réponses: 3
    Dernier message: 12/10/2006, 14h16
  5. [varchar en clef primaire] perte de performances?
    Par hansaplast dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/08/2006, 20h29

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