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

SDL Discussion :

Gestion des ressources processeur


Sujet :

SDL

  1. #1
    Membre habitué Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Points : 176
    Points
    176
    Par défaut Gestion des ressources processeur
    Bonjour à tous !

    J'ai un petit soucis avec l'optimisation.

    J'ai ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    int lancer(SDL_Surface* ecran)
    {
        unsigned int checkTime = SDL_GetTicks();
        chargement_image_personnage();
        continuer = 1;
        while (continuer)
        {
            verif_fermeture();
            touches();
            if(SDL_GetTicks() > (checkTime + 1000 / fps) )
            {
                SDL_FillRect(ecran, NULL, SDL_MapRGB(joueur->format, 0, 0, 0));
                gestion_personnage(ecran); //gere le blit du personnage sur l'ecran
                checkTime = SDL_GetTicks();
            }
            SDL_Flip(ecran);   
        }
    }
    le FPS est réglé à 20. Pourtant, en laissant tourner le programme à vide je suis à 60 de ressources processeur (j'ai un amd 3000+). la fonction de gestion du personnage fais tout simplement un blit et j'ai qu'un personnage sur un fond noir. Je trouve que l'utilisation du processeur est enorme par rapport à mon utilisation.

    Comment pourrais-je optimiser mon programme? J'ai mal placé ma gestion du FPS?

  2. #2
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(SDL_GetTicks() > (checkTime + 1000 / fps) )
            {
                SDL_FillRect(ecran, NULL, SDL_MapRGB(joueur->format, 0, 0, 0));
                gestion_personnage(ecran); //gere le blit du personnage sur l'ecran
                checkTime = SDL_GetTicks();
            }
    ajoutes un else :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    else{
        SDL_Delay((checkTime + 1000 / fps) - SDL_GetTicks());
    }
    ça devrais normalement aller mieux

  3. #3
    Membre habitué Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Points : 176
    Points
    176
    Par défaut
    Merci

  4. #4
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    ce fut un plaisir

  5. #5
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par poussinphp
    le FPS est réglé à 20. Pourtant, en laissant tourner le programme à vide je suis à 60 de ressources processeur (j'ai un amd 3000+). la fonction de gestion du personnage fais tout simplement un blit et j'ai qu'un personnage sur un fond noir. Je trouve que l'utilisation du processeur est enorme par rapport à mon utilisation.

    Comment pourrais-je optimiser mon programme? J'ai mal placé ma gestion du FPS?
    Pas grand chose à faire à part essayer d'optimiser le code.
    Direct X et de surcroit SDL pompent énormément de ressources.
    Même Direct X en natif sans surcouche comme SDL cela nécessite bcp de ressources.

  6. #6
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    avec ce que j'ai donné, il devrait passé à 0-1% de de ressource cpu au lieu de ses 60%

    la raison est simple, en faisant sans le else, on ne laisse pas la main au cpu pour faire les choses qu'il a à faire, du coup vous connaissez la suite

    Ce n'est pas une question d'optimisation dans ce cas là, c'est juste que ça se fait comme ça et pas autrement (une boucle infini, un if => il rentre dedans ok, il rentre pas dedans il continue la boucle mais ne laisse malheureusement pas la main au cpu, d'où l'utilité du else)

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

Discussions similaires

  1. Gestion des ressources
    Par elflamby dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 16/09/2007, 14h59
  2. gestion des ressources utilisateurs
    Par edzodzinam dans le forum WebDev
    Réponses: 3
    Dernier message: 22/01/2007, 20h32
  3. Gestion des ressources
    Par BainE dans le forum MFC
    Réponses: 2
    Dernier message: 11/01/2006, 11h55
  4. [DLL] Gestions des ressources textes (StringTable)
    Par Clorish dans le forum Langage
    Réponses: 1
    Dernier message: 26/05/2005, 16h50
  5. [Swing] Gestion des ressources
    Par speedster dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 13/11/2004, 15h09

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