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

Windows Forms Discussion :

[C#] Probleme de performance


Sujet :

Windows Forms

  1. #1
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut [C#] Probleme de performance
    Salut

    je fais un programme avec un BDD access, et j'ai un traitement qui peut etre long ... mon prob est que le traietement en question mets 16s pour traiter 100 fichiers ...ce qui est tres long !!

    Y a t il dans VSExpress des outils ou fonctions me permettant de voir ou le probleme se situe ?

    thx @+

  2. #2
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    euhhh c'est quoi le problème==???

    si c'est long c'est qu'il y a des raisons qu'il soit long..

    s'il y a d autres problems faut détailler

    merci :-)

  3. #3
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    ben justement j'aimerais savoir pourquoi c si long ....c pour cela si il y a qqchose permettant de faire des stats ?

  4. #4
    Membre émérite
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Par défaut
    Tu peux pas faire le traitement asynchron ?

    La BD access viens faire quoi dans ton problème ? Tu fait quel genre de traitement avec les 100 fichiers ? (fichiers texte, mdb, dat )?

  5. #5
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Oups ...le traitement permet seulement de recuperer un liste de fichier image de recuperer la taille des imges et d'enregistrer ces infos dans une bdd ...

  6. #6
    Membre émérite
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Par défaut
    ta essayer de ne pas inscrire dans la BD ? voir si c'est la BD access qui crée ce ralentissement. Fait des essaie-erreur comme ca et tu va trouvé le prob. Je ne veux pas etre méchant envers les access-ist, mais pk utiliser access quand on a MS Sql Server Express qui est gratuit et beaucoup + performant

  7. #7
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Citation Envoyé par shwin
    ta essayer de ne pas inscrire dans la BD ? voir si c'est la BD access qui crée ce ralentissement. Fait des essaie-erreur comme ca et tu va trouvé le prob. Je ne veux pas etre méchant envers les access-ist, mais pk utiliser access quand on a MS Sql Server Express qui est gratuit et beaucoup + performant

    oui je vais essaye ...
    ben l'interet, pour moi d'une bdd access, est que la bdd est en un fichier, et pas besoin d'avoir un autre process qui tourne derriere ....

  8. #8
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Slu

    si qqn pourrais regarder vite fait mon proj et me dire ce qu'il pense du code ...

    http://www.megaupload.com/?d=N0UPJEO3

    thx

  9. #9
    Membre émérite
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Par défaut
    Salut, je viens de checker et cest pas mal

    sauf que tu devrais utiliser les parameters pour tes requetes sql. Aussi utiliser les fichiers ressources pour quand tu affiche un message a lutilisateur, comme ca si jamais tu veux avoir ton prog dans une autre langue, la job des localiseurs va etre déja fait!!

    Aussi, tu devrais utiliser des storedProc pour ton sql, comme ca si jamais ta besoin de changer qqechose dans tes requetes apres la mise en production, tu n'est pas obliger de recompiler et redistribuer ton prog seulement la BD dans laquel tu va avoir faire les changements dans les storedProc. Cependant il ny as pas de storedproc en access donc pk ne pas aller vers sql server express qui est beaucoup + performant

  10. #10
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Citation Envoyé par shwin
    Salut, je viens de checker et cest pas mal

    sauf que tu devrais utiliser les parameters pour tes requetes sql. Aussi utiliser les fichiers ressources pour quand tu affiche un message a lutilisateur, comme ca si jamais tu veux avoir ton prog dans une autre langue, la job des localiseurs va etre déja fait!!

    Aussi, tu devrais utiliser des storedProc pour ton sql, comme ca si jamais ta besoin de changer qqechose dans tes requetes apres la mise en production, tu n'est pas obliger de recompiler et redistribuer ton prog seulement la BD dans laquel tu va avoir faire les changements dans les storedProc. Cependant il ny as pas de storedproc en access donc pk ne pas aller vers sql server express qui est beaucoup + performant
    Merci !!

    Qq tu entend par "parameters" pour les requetes SQL ?
    Les fichiers ressources pour les messages ... je vais voir si je trouve de la doc ...

  11. #11
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Up !

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Novembre 2002
    Messages : 89
    Par défaut
    http://webman.developpez.com/article...opwatch/vbnet/

    La classe stopWatch te permet de mesurer les temps d'execution et par conséquent le goulot d'étranglement

  13. #13
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Merci ...

    J'ai trouve ... deja j'ouvre qu'une seul fois la connection a la BDD...ce qui fait deja gagner beaucoup de temps ... mais la ou je perds enormement de temps c que j'utilise un objet Bitmap pour recuperer la taille d'une image ...
    Donc si quelqu'un a une autre solution pour recuperer la taille d'une image ...


  14. #14
    Membre émérite Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Par défaut
    ce que tu cherche c'est ce qu'on appel un profiler , il y en a plusieurs sur le marche des gratuits au tres onnereux.

    il y a CLR.NET profiler qui est installer sur ta machine avec .net tu peux y jeter un oeil.

    sinon un profiler un vrai te permet de voir dans quelle ligne de code, function ton appli passe le plus de temps ou demande le plus de memoire et cela permet aussi de reperer des memory leak (fuite de memoire).

    en gros un outil indispensable a mon gout pour commencer , puis avec le temps deviens obselete puis finalement avec plus d'experience redeviens a l'orde du jour.

  15. #15
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Je pense, pour optimiser la performance, ne pas inclure pour le moment le traitement du la taille de l'image , mais seulement au moment ou l'image serra utilise ...

    Qu'en pensez vous ?

  16. #16
    Membre émérite
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Par défaut
    Citation Envoyé par Seth77
    Merci !!

    Qq tu entend par "parameters" pour les requetes SQL ?
    Les fichiers ressources pour les messages ... je vais voir si je trouve de la doc ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SqlCommand command = new SqlCommand();
    command.CommentText = "SELECT * FROM table WHERE param1 = @param";
    command.Parameters.Add("@param", sqlDbType.NVarchar).Value = "valeur"
    J'ai pe etre une erreurs de majuscule, jai pas tester dans VS.

  17. #17
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Citation Envoyé par shwin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SqlCommand command = new SqlCommand();
    command.CommentText = "SELECT * FROM table WHERE param1 = @param";
    command.Parameters.Add("@param", sqlDbType.NVarchar).Value = "valeur"
    J'ai pe etre une erreurs de majuscule, jai pas tester dans VS.
    Ah d'accord ... merci ... en fait pour le moment je fais de la concatenation ...cela change qqchose ?

  18. #18
    Membre émérite
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Par défaut
    Oui, tu est vulnérable au SqlInjection. Check sur google pour en savoir plus

  19. #19
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Citation Envoyé par shwin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SqlCommand command = new SqlCommand();
    command.CommentText = "SELECT * FROM table WHERE param1 = @param";
    command.Parameters.Add("@param", sqlDbType.NVarchar).Value = "valeur"
    J'ai pe etre une erreurs de majuscule, jai pas tester dans VS.
    Salut

    je fais les requetes de cette facon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    OleDbCommand cmd = new OleDbCommand(theReq, DB_ConnectDB.GetInstance().DBConnection);
                    cmd.ExecuteNonQuery();
    Comment fait on pour les parameters ?

Discussions similaires

  1. [oracle 9i] traquer les problemes de performances
    Par jojo22222 dans le forum Oracle
    Réponses: 1
    Dernier message: 01/02/2006, 18h48
  2. Réponses: 9
    Dernier message: 31/01/2006, 22h42
  3. probleme de performance dans l'insertion
    Par chafikha dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 12/08/2005, 07h59
  4. Réponses: 14
    Dernier message: 09/08/2004, 13h42
  5. problemes de performances avec les requetes select
    Par berry dans le forum Requêtes
    Réponses: 3
    Dernier message: 10/07/2003, 13h39

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