2010-07-14 3 views

Répondre

5

C++ n'impose pas les performances (en secondes) des parties particulières de cette bibliothèque standard (bien que de nombreux conteneurs et algorithmes aient des exigences de complexité).

Cela signifie que vous êtes à la merci de votre implémentation. La seule chose fiable à faire est de la mesurer et de voir si elle est acceptable dans votre application.

+0

Que diriez-vous de l'implémentation Visual C++? – GabiMe

+2

@bugspy: Commencez par utiliser votre code d'une manière facile à lire et à maintenir. Profil * lorsque vous avez terminé * donc vous ne devinez pas ce qui est lent, et pouvez réellement voir ce qui est lent. Peu importe d'ici là, écrivez ce dont vous avez besoin. Si vous devez l'appeler, cela n'a pas vraiment d'importance, n'est-ce pas? – GManNickG

+0

@ bugspy.net: Je n'ai jamais mesuré tellp() sur une version de Visual C++ car je n'en ai jamais eu besoin. Même si je devais partir et le mesurer maintenant cela ne va pas vous aider parce que je ne fonctionnerais pas sur votre environnement (matériel, options logicielles installées, etc.). Je ne crois pas que ce soit un appel très cher, mais pourquoi prendre note de mon estimation totale? –

5

Ceci est une vieille question, mais je vais répondre de toute façon, dans le cas où il y aura d'autres personnes qui cherchent une réponse. Nous avons donc une bibliothèque de journalisation, qui utilise des flux et des déclarations pour déterminer la taille du fichier. Il a appelé tellp pour chaque journal étant fait. Donc, avec tellp 1, la ligne de log prend environ 20 microsecondes selon la machine. Sans cela, le journal prend environ 1 microseconde.

Donc oui selon votre domaine, il peut être très cher ou peut-être pas du tout.

p.s. première règle d'optimisation - ne pas optimiser ..

+0

Quelle plate-forme et quel compilateur avez-vous utilisé? – GabiMe

+0

il était sur Ubuntu x86, compilateur gcc. – Tadzys

Questions connexes