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

MFC Discussion :

remplacer le "malloc" de visual ?


Sujet :

MFC

  1. #1
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 8
    Par défaut remplacer le "malloc" de visual ?
    Bonjour,

    J'aimerai savoir s'il est possible de remplacer le malloc proposé par visual (c++ 6) par un autre (dlmalloc, gmalloc ou que sais-je encore...).
    Il semble que le malloc de visual ne soit pas très efficace pour les allocations de taille importante et qu'il réalise toute les allocations dans la heap globale du process (ce qui explique entre autres ses piètres performances pour les gros objets).

    Thx.

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    Si tu travailles sous windows, tu peux utiliser les allocations par les APIs, voir VirtualAlloc, GlobalAlloc, ou HeapAlloc

  3. #3
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 8
    Par défaut
    Effectivement,

    J'ai aussi une version du prog avec des HeapAlloc/VirtualAlloc.
    J'essaye de gérer Deux heap privées ( une pour les tres petis objets, une pour les moyens) et heapAlloc appelle virtualAlloc pour les gros objets.

    L'idée étant de réduire au maximum la fragmentation de l'espace.
    Mais ca pose d'autres problèmes (quelle taille allouée aux différentes heaps ?) et les performances sont moins bonnes.

  4. #4
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Construit plutot ton allocateur basé sur le malloc standard (alloue des gros blocs que tu gères toi même). Les pool par exemple sont des allocateurs spécialisés pour un seul type d'objet, ce qui les rend plus rapides / efficaces. Voir dans boost par exemple.
    http://www.boost.org/libs/pool/doc/concepts.html
    Attention aussi au fait qu'en debug le malloc est plus long car il fait plein de vérifications pour détecter des erreurs.

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