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 :

gestionnaire de mémoire en c


Sujet :

C

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 11
    Par défaut gestionnaire de mémoire en c
    bonjour a toutes et a tous =)

    j'ai beau chercher sur google mais je n'arrive pas a trouver de bon exemples de gestionnaire de mémoire, certainement que je ne tape pas les bon mots clé.

    je sais qu'on peu trouver un exemple dans le bouquin de K&R mais est ce que certains d'entre vous connaissent de bon sites en anglais et en francais.

    si j'ai bien compris en gros on fait un malloc et ensuite on gere sois même la mémoire du bloc (je sais pas si je l'exprime correctement ).

    - comment eviter la fragmentation quand on ecris ce genre de routine.
    - comment faire avec ca pour avoir des blocs de tailles fixe ou des blocs de
    tailles differentes.



    merci les gars =)

  2. #2
    Membre Expert Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 11
    Par défaut
    non mais ce n'est pas vraiment ca que je recherche

    merci quand même

  4. #4
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Tu veux par exemple faire un ensemble de fonction de suivi mémoire ?

    Par exemple pour vérifier le nombre de désallocations et d'allocation faites (avec par exemple ligne et fichier où chaque allocation a eu lieu) ?


    Ou souhaites tu créer tes propres malloc et free ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 11
    Par défaut
    genre je prend un gros bloc mémoire (alloué, static ), et le découpe en morceaux de taille fixe ou variable.

    je crois qu'on appel ca un "memory pool" je suis pas certain.

    avec cette methode je n'aurais pas a faire des malloc mais un seul au debut, je vais me pencher sur l'exemple de K&R (chapitre 8 8.7).

    comme je n'aime pas faire les choses sans comprendre je ne vais pas recopier
    des routine toutes faites.

    si quelqu'un a des liens a me donner

  6. #6
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 11
    Par défaut
    merci mais t'aurais pas des liens en francais ?

  8. #8
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Moi j'avais fait y'a quelques temps un petit gestionnaire d'allocation de mémoire lié à une liste chaînée pour garder la trace des adresses, de cette manière je pouvais enregistrer un appel de ma fonction de nettoyage (pour la cas où des libérations auraient étées oubliées) avec atexit juste après l'initialisation de mon module.

    C'était pour un petit jeu (faudrais vraiment un jour que je m'y remette dessus)

    Si ca peut t'intéressé, tu peux avoir les sources sans aucun problème, c'est complet, y'a des wrapper pour toutes les fonctions standard (malloc, calloc, realloc, free) et il a été passé au peigne fin avec Valgrind

    Bon par contre il ne fait rien de plus comme toi tu viens de le préciser genre découpe de blocs et tout hein, c'est un simple petit gestionnaire qui permet éventuellement de libérer automatiquement des adresses mémoires allouées dynamiquement dans le programme, rien de plus !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 11
    Par défaut
    salut Franck !!

    tes sources m'interesseraient , juste pour apprendre et pas les recopier bête- ment , je suis justement en train de debuter un jeu en 3d sous opengl et je me rend compte que je ne maitrise pas suffisement certaines techniques en c
    , j'ai deja creer des routines pour charger des fichiers lwo (lightwave) et les afficher, je vais devoir faire bcp d'allocation mémoire et de facon trés rapide,
    donc la seule solution c'est un gestionnaire de mémoire.


    que me conseillerais tu pour apprendre ce genre de techniques, sur quel sites aller, quel livre lire, je n'ai que celui de K&R, quand je fais une recherche sur google j'ai du mal a trouver ce que je cherche.

    programmer un jeu est un travail titanesque mais je ne lacherais pas le morceau, l'important est d'avancer un peu plus chaque jours.


    merci de m'avoir lu

  10. #10
    Membre Expert Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Par défaut
    Citation Envoyé par kagemusha
    quand je fais une recherche sur google j'ai du mal a trouver ce que je cherche.
    Via Google :
    http://256.com/sources/mpool/
    Je n'ai pas regardé en détail, mais ça devrait te donner des pistes.

  11. #11
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par kagemusha
    est ce qu'on appel vraiment cette technique un "memory pool" ??
    Dans un vieux thread, Emmanuel Delahaye avait aide pas a pas le P.O. a developper une ebauche de Memory Pool. Le thread devrait t'interesser.

  12. #12
    Membre Expert
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Par défaut
    j'ai deja creer des routines pour charger des fichiers lwo (lightwave) et les afficher, je vais devoir faire bcp d'allocation mémoire et de facon trés rapide,
    donc la seule solution c'est un gestionnaire de mémoire.
    Les fichiers 3D ne sont chargé qu'une seul fois au départ... donc cela ne va pas ralentir ton jeu !

    De plus, la lecture de fichier est plus lente que le temps d'allocation de mémoire. Donc le gain doit être minime.... et en principe (je ne connais pas le format de lwo (lightwave)) mais on connait la taille du model, son nombre de vertices, si il le modèle possède des couleurs ou des textures, ensuite allouer directement la bonne taille pour stocker l’élément 3D.

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 11
    Par défaut
    merci Franck pour ce que tu m'a envoyé ca m'aidera énormément

  14. #14
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par kagemusha
    merci Franck pour ce que tu m'a envoyé ca m'aidera énormément
    Ok Au moins ca servira à quelqu'un tout compte fait
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

Discussions similaires

  1. Gestionnaire de mémoire et Qt
    Par mister3957 dans le forum Qt
    Réponses: 5
    Dernier message: 09/09/2008, 12h30
  2. Conflit entre mon gestionnaire de mémoire et afxmem
    Par mister3957 dans le forum C++
    Réponses: 9
    Dernier message: 30/06/2008, 12h52
  3. Réponses: 4
    Dernier message: 02/06/2008, 20h12
  4. Réponses: 10
    Dernier message: 20/08/2007, 10h47
  5. Réponses: 1
    Dernier message: 27/06/2006, 20h28

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