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

Langage C++ Discussion :

Performances std::array C++ 2011 vs C array


Sujet :

Langage C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Homme Profil pro
    Doctorant en Astrophysique
    Inscrit en
    Mars 2009
    Messages
    312
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Doctorant en Astrophysique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2009
    Messages : 312
    Par d�faut Performances std::array C++ 2011 vs C array
    Bonjour � tous.

    En mai/juin dernier j'avais remport� le concours de programmation Intel gr�ce entre autres au fait que j'avais remplac� tous les std::vector de mon code par des C array. On entend souvent dire que la diff�rence de perf est l�g�re, mais je ne sais pas comment cela est possible j'avais facilement un facteur 3 de perfs entre les 2.

    M�me au niveau des tailles dynamiques, il y avait toujours une diff�rence de perfs �normes entre un int *v = new int[100] vs un std::vector (que �a soit compil� sous intel ou sous g++).

    Je ne sais pas trop d'o� viens cet overhead �norme, mais le fait est que je n'utilisais maintenant plus que des C array pour les fonctions qui sont au coeur de mes calculs (celles qui sont appell�es des millions de fois).

    Je me demandais si vous pensiez que les std::array de C++ 2011 rem�diaient � ce probl�me.

    Merci beaucoup

  2. #2
    Membre �prouv�
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par d�faut
    Tu devrais essayer �galement les nouveaux conteneurs de Boost.

  3. #3
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    Comment avais-tu allou� tes vecteurs ?
    - push_back ?
    - resize+affectation
    - reserve+push_back

    NB: ces trois solutions pr�sentent un surcout par rapport au simple new[].
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

  4. #4
    Membre Expert

    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Ao�t 2004
    Messages
    1 391
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France, Doubs (Franche Comt�)

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

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 1 391
    Par d�faut
    Tu utilises ton new T[n] avec n connue � la compilation ou au runtime ? Dans le second cas oublie std::array, ce n'est pas une alternative, dans le premier ca revient au m�me qu'un T tab[N] (T et N connues � la compilation) � quelques indirection pr�s (et encore, si m�thode d'acc�s inlin� par le compilateur, il doit pas en rester beaucoup).

  5. #5
    Membre Expert
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Par d�faut
    Compiler en Release aide aussi :o

  6. #6
    Membre �clair�
    Homme Profil pro
    Doctorant en Astrophysique
    Inscrit en
    Mars 2009
    Messages
    312
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Doctorant en Astrophysique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2009
    Messages : 312
    Par d�faut
    C'�tait bien entendu compil� en release -O3 avec gcc et les compilos intel.

    Je suis quasi-certain qu'en plus de l'allocation, il y avait un probl�me au niveau du temps d'acc�s, et c'est �a qui me laissait vraiment perplexe . Je suis en train d'�crire un petit benchmark pour tester tout �a.

Discussions similaires

  1. Utilisation de std::chrono (C++ 2011)
    Par GillesM57330 dans le forum Qt
    R�ponses: 2
    Dernier message: 03/03/2015, 10h39
  2. [MySQL] array php modifi� par mysql array php
    Par fahdo dans le forum PHP & Base de donn�es
    R�ponses: 3
    Dernier message: 20/07/2014, 11h46
  3. Explication:array[0..0] of VS array of
    Par Eric Boisvert dans le forum Delphi
    R�ponses: 3
    Dernier message: 10/07/2006, 16h10
  4. Array, Boucle : Multiplication de l'Array
    Par moijhd dans le forum Flash
    R�ponses: 4
    Dernier message: 15/06/2006, 13h21
  5. Performance des vertex array
    Par Mathieu.J dans le forum OpenGL
    R�ponses: 13
    Dernier message: 25/06/2004, 10h47

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