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# Problème de performance dans une boucle récursive


Sujet :

C#

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Août 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut C# Problème de performance dans une boucle récursive
    Bonjour,
    Aujourd'hui, j'ai trouvé un vieux problème provenant du concous Google Code Jam.
    L'énnoncé du problème est à cette adresse : http://www3.sympatico.ca/red.zrari/problem.htm
    J'ai réussi à résoudre le problème en 15 min cependant mon programme (en C#) prend beaucoup de temps (1 min 15 sec) à résoudre l'exemple 5 (voir l'énoncé du problème).
    Au début, je pensais que c'était normal. Après tout, une boucle récursive de 1 milliards de tour doit prendre du temps.
    Cependant, j'ai fini par trouver un programme en C++ qui utilise la même technique que mon programme mais qui résout l'example 5 en 0 sec.

    Je ne comprends pas d'où vient le problème. J'ai essayé d'optimiser mon code mais sans succès.
    Je demande alors votre assistance pour m'aider à déboguer ce problème.

    Mon programme C# : http://www3.sympatico.ca/red.zrari/csharp.htm
    Le programme C++ : http://www3.sympatico.ca/red.zrari/c++.htm

    Ma Configuration:
    - AMD Athlon XP 2800+
    - Windows XP Pro SP2
    - .Net framework 2.0
    - Visual C# Express 2005 and Visual C++ Expresss 2005

  2. #2
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Salut .

    enleve le Console.WriteLine dans ta fonction count. Les appels systèmes d'écriture sur console sont extrement lent par rapport aux reste du code, a cause de leur nature même : se sont des appels systèmes
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  3. #3
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Pour optimisier le temps d'execution il faut travailler en mode unsafe avec des pointeurs.

    Sinon est-ce que tu as essayé de traduire le code C++ en C# ligne par ligne, peut-etre que ton algorithme est plus complexe
    Mehdi Feki : Modérateur .Net

Discussions similaires

  1. Problème de checkbox dans une boucle
    Par LeLapinVengeur dans le forum Struts 1
    Réponses: 5
    Dernier message: 01/12/2006, 17h07
  2. [SimpleXML] Google Maps, Problème d'encoding dans une boucle
    Par yahn dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 23/09/2006, 19h40
  3. Problème de SCANF dans une boucle WHILE
    Par FidoDido® dans le forum C
    Réponses: 4
    Dernier message: 30/12/2005, 17h42
  4. [Conception] Problème de test dans une boucle while
    Par Cyrius dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/11/2005, 18h07
  5. Problème avec TNMSMTP dans une boucle.
    Par Orgied dans le forum Web & réseau
    Réponses: 3
    Dernier message: 07/04/2004, 10h19

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