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 :

Lenteur de ifstream contre fscanf


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Par défaut Lenteur de ifstream contre fscanf
    Salut,
    je suis en train de me faire un micro programme pour lire en boucle des fichiers qui sont stockés dans des dossiers. J'ai testé les deux écriture, une avec ifstream et l'autre avec fscanf, et les temps d'executions sont vraiment en faveur de fscanf. Le C++ est-il ci haut niveau par rapport au C en ce qui concerne les flux bas niveau?


    Appelé plus de 6000 fois
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    void ReadField(const string& directory,const string& name,complex<double>** field,int nb_source)
    {
    	double re,im;
    	string str_i;
    	string str_r;
     
    	str_i=directory+"/"+name+"_i.dat";
    	str_r=directory+"/"+name+"_r.dat";
     
    	FILE* f_in_i=fopen(str_i.c_str(),"r");
    	FILE* f_in_r=fopen(str_r.c_str(),"r");
     
    	//ifstream f_in_i(str_i.c_str()); if(!f_in_i){AbordProgram((string)("Can not open file_i in "+directory));}
    	//ifstream f_in_r(str_r.c_str()); if(!f_in_i){AbordProgram((string)("Can not open file_r in "+directory));}
     
    	for(int i=0; i<nb_source; ++i)
    	{
    	    for(int j=0; j<nb_source; ++j)
    	    {
    			//f_in_i >> im;
    			//f_in_r >> re;
     
    			fscanf(f_in_i,"%lf",&im);
    			fscanf(f_in_r,"%lf",&re);
     
    			field[i][j]=cmplx(re,im);
    		}
    	}
    	fclose(f_in_i);
    	fclose(f_in_r);
     
    	//f_in_i.close();
    	//f_in_r.close();
    }

  2. #2
    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
    Les flux standard font beaucoup de choses en plus, dont on n'a pas toujours besoin...
    cf http://www.msobczak.com/prog/fastreams/ pour une version similaire, mais optimisée (si tel est ton besoin incontournable)
    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...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Par défaut
    non c'est pas une nécessite en soit (la performance de lecture) c'est juste que je m'étonnais d'un tel écart...

    EDIT: Merci pour le lien

Discussions similaires

  1. Arguments pour et contre Access ?
    Par bottura dans le forum Sondages et Débats
    Réponses: 240
    Dernier message: 23/03/2018, 23h25
  2. Protéger une disquette contre la copie
    Par benzaza dans le forum Assembleur
    Réponses: 20
    Dernier message: 16/01/2005, 10h42
  3. Web contre client/serveur que choisir??
    Par silvermoon dans le forum Débats sur le développement - Le Best Of
    Réponses: 41
    Dernier message: 24/01/2004, 15h53
  4. Lenteur d'execution de Jbuilder 6
    Par Tsimplice dans le forum JBuilder
    Réponses: 6
    Dernier message: 18/12/2002, 14h41
  5. Algo "Contre l'ordinateur"
    Par Black-Ghost dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 15/10/2002, 10h55

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