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 :

Copie de blocs m�moires


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    36
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 36
    Par d�faut Copie de blocs m�moires
    Bonjour,

    Je suis en train de m'amuser � d�velopper une interface graphique, sans utliser de biblioth�ques du types OpenGL ou DirectX...
    Je construit donc des images qui sont en fait des suites de pixels cod�s sur 32 bits. Il faut donc que j'optimise mes fonctions de base de rendu, en particulier "remplir un rectangle d'une couleur donn�e"... pour cela ma m�thode est d'aller faire du memcpy sur chaque pixel de la premi�re ligne, puis de faire du memcpy de ligne � ligne.

    J'aimerais savoir comment vous feriez pour optimiser ces copies brutes. Par exemple, j'ai vu qu'il y avait memset qui pourrait �tre utilie, mais il me semble que �a ne peut d�finir une copie de m�moir que d'un octet... l'id�al serait de pouvoir faire du memset en copiant des blocs de 4 octets.

    Connaissez-vous qque chose de ce type ?

    Merci.

  2. #2
    yan
    yan est d�connect�
    R�dacteur
    Avatar de yan
    Homme Profil pro
    Ing�nieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : Ing�nieur expert
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par d�faut
    Citation Envoy� par Dmnbp7ip Voir le message
    Bonjour,

    Je suis en train de m'amuser � d�velopper une interface graphique, sans utliser de biblioth�ques du types OpenGL ou DirectX...
    Je construit donc des images qui sont en fait des suites de pixels cod�s sur 32 bits. Il faut donc que j'optimise mes fonctions de base de rendu, en particulier "remplir un rectangle d'une couleur donn�e"... pour cela ma m�thode est d'aller faire du memcpy sur chaque pixel de la premi�re ligne, puis de faire du memcpy de ligne � ligne.

    J'aimerais savoir comment vous feriez pour optimiser ces copies brutes. Par exemple, j'ai vu qu'il y avait memset qui pourrait �tre utilie, mais il me semble que �a ne peut d�finir une copie de m�moir que d'un octet... l'id�al serait de pouvoir faire du memset en copiant des blocs de 4 octets.

    Connaissez-vous qque chose de ce type ?

    Merci.
    Bonjour,
    tu peut le faire avec std::fill ou std::fill_n
    http://r0d.developpez.com/articles/algos-stl/#LII-B-5

  3. #3
    Expert confirm�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    D�cembre 2003
    Messages
    3 549
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 3 549
    Par d�faut
    J'aimerais savoir comment vous feriez pour optimiser ces copies brutes.
    Si memcpy n'est pas assez rapide tu peux faire des trucs pour aller plus vite. En particulier si ta m�moire est align�e sur 16 octets tu peux utiliser sur x86 les instructions SIMD.
    Bien entendu �a irait plus vite si memcpy est inlin�, aussi.
    Mais si �a se trouve ton compilateur est suffisamment malin pour g�n�rer le meilleur code possible.

Discussions similaires

  1. Copie de bloc de m�moire (avec Boost ?) ?
    Par oodini dans le forum C++
    R�ponses: 7
    Dernier message: 13/02/2009, 15h26
  2. Bloc m�moire maximum allouable avec new
    Par uriotcea dans le forum C++Builder
    R�ponses: 1
    Dernier message: 28/02/2007, 18h50
  3. Copier une bloc m�moire dans un CDC
    Par kinhelios dans le forum MFC
    R�ponses: 3
    Dernier message: 23/02/2007, 09h17
  4. R�ponses: 2
    Dernier message: 19/02/2007, 15h46
  5. Partage de blocs m�moire entre 2 processus
    Par rolkA dans le forum Windows
    R�ponses: 6
    Dernier message: 18/11/2003, 19h08

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