Afficher un message
Vieux 06/05/2008, 09h23   #34
Michael DOUBEZ
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: performance de lecture de fichiers formatés

Fabien LE LEZ a écrit :
> On Mon, 5 May 2008 02:42:08 -0700 (PDT), James Kanze
> <james.kanze@gmail.com>:
>
>> Selon les implémentations, il peut y avoir plus ou moins de
>> différences de performances entre iostream et FILE*. En général,
>> en faveur des FILE* (mais ce n'est pas forcement universel).

>
> Ce que je ne comprends pas, c'est pourquoi mon implémentation
> (bricolée en quelques minutes) est très largement plus rapide que
> "operator >> (istream&, double&)".
> D'autant que je commence par lire une ligne dans un string avec
> getline(), puis je parse cette chaîne (en faisant les vérifications
> qui vont bien), alors que operator>> ne passe pas par cette étape
> intermédiaire.


Peut être l'indirection causée par le codecvt. Ton code ne prends pas en
compte la localisation bien que ça n'explique pas un facteur 4.

> Comme je ne pense pas être meilleur que les auteurs de g++ dans leur
> propre domaine, je me doute qu'il y a une explication quelque part,
> mais je ne vois pas où. Et on ne parle pas ici de quelques % de
> différence, mais bien d'un facteur 4 (grosso modo).


Ou peut être il n'y a pas eu d'effort de la part des auteurs de g++ pour
optimiser iostream.

D'après B.Stroustrup, iostream est plus rapide (en théorie)
http://www.research.att.com/~bs/new_learning.pdf.

Michael

  Réponse avec citation
 
Page generated in 0,05569 seconds with 9 queries