Je veux l'appeler en boucle serrée des milliers de fois par seconde. Est-ce un appel coûteux? J'utilise Windows Visual C++.C++: Quel est le coût d'ofstream.tellp()?
Répondre
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.
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 ..
- 1. Quel est le coût de beaucoup de TIME_WAIT côté serveur?
- 2. Quel est le coût/complexité d'un appel de fonction String.indexOf()
- 3. Quel est le coût pour créer un NSAutoreleasePool
- 4. Quel est le coût de création de l'objet
- 5. Quel est le coût de "as" par rapport à QueryInterface dans COM ou dynamic_cast dans C++?
- 6. PHP5 - Quel est le coût de RTTI (obtenir le nom de classe et etc.) en PHP5?
- 7. Quel est le coût (en cycles) pour basculer entre Windows Kernel et le mode utilisateur?
- 8. Coût d'un #include dans C
- 9. Coût de SortedDictionary.Count
- 10. Quel est le coût en mémoire d'un DataSet par rapport à d'autres classes .Net Collection?
- 11. Quel est le coût d'utilisation de NULL dans les colonnes de la base de données?
- 12. Quel est le coût en octets de l'en-tête d'une colonne sql_variant dans SQL Server?
- 13. Quel est le coût d'utilisation de HTTPS par rapport à HTTP?
- 14. calculer le coût moyen
- 15. Quel est le ~ caractère utilisé dans C#
- 16. Quel est le truc avec c: \ programme?
- 17. Quel est le problème avec float ("1,000")?
- 18. Coût de la GC d'utiliser des références faibles en C#?
- 19. C++ ou C++ 0x - Quel est le meilleur standard?
- 20. reinterpret_cast cast coût
- 21. Implémentations de collections Java (par exemple HashMaps vs HashSet vs HashTable ...), quel est le coût de choisir le mauvais?
- 22. Quel est le problème avec le code C ci-dessous?
- 23. Quel est le problème avec le code C++ ci-dessous?
- 24. Quel est l'analogue C++ de l'octet C# []?
- 25. Algorithme minimax: fonction coût/évaluation?
- 26. quel est le résultat?
- 27. Quel est le cryptage?
- 28. quel est le codage?
- 29. Coût approximatif de l'application iPhone?
- 30. Quel est le coût de codage et de déploiement asp.net MVC ou stackoverflow.com, Struts ASP.NET MVC VS, printemps
Que diriez-vous de l'implémentation Visual C++? – GabiMe
@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
@ 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? –