Je crée des compteurs de performance personnalisés. Je vais créer des tâches sur un pool de threads et incrémenter/décrémenter les compteurs à partir de plusieurs threads de travail. Dois-je donner à chaque fil un nouvel objet compteur? Est-il sûr de partager un thread d'exécution de compteur de performance (pour l'incrémentation/décrémentation)Compteurs de performance et filetage
7
A
Répondre
6
La classe PerformanceCounter utilise déjà un wrapper threadsafe, une classe interne nommée SharedPerformanceCounter. Il utilise Interlocked.Increment() pour incrémenter une valeur de compteur par exemple.
Vous n'avez pas besoin de vous enfermer.
Questions connexes
- 1. SSIS compteurs de performance Pipeline
- 2. Compteurs de performance sur l'iPhone
- 3. Compteurs de performance et fuites de canaux WCF
- 4. Les compteurs de performance s'incrémentent incorrectement?
- 5. Que sont les compteurs de performance?
- 6. Activer les compteurs de performance ODP.Net
- 7. Concept de "compteurs de performance" sous Linux/Unix
- 8. Compteurs de performance dans le développement de serveurs
- 9. Utilisation de compteurs de performance avec différents langages d'interface utilisateur
- 10. Compteurs de performance pour les unités d'exécution en cours
- 11. Webservice wcf compteurs de performance pour file d'attente
- 12. Compteurs de performance d'applications Java consultés dans Perfmon
- 13. équivalent pour les compteurs de performance Win32 sous Linux
- 14. Afficher tous les compteurs de performance pour une catégorie
- 15. Calcul des moyennes avec des compteurs de performance
- 16. Question sur la commande à regarder les compteurs de performance
- 17. oprofile ne peut pas utiliser les compteurs de performance matérielle
- 18. Quels sont les meilleurs compteurs de performance ASP.NET à surveiller?
- 19. Création et modification de compteurs de performance dans un script PowerShell ou une ligne de commande
- 20. Comment créer des compteurs de performance qui sont exposés par jmx et accessibles via jconsole?
- 21. Comment utiliser les compteurs de performance AverageTimer32 et AverageBase avec System.Diagnostics.Stopwatch?
- 22. Filetage et noyaux
- 23. 'sys.excepthook' et le filetage
- 24. Ruby: compteurs, comptage et incrémentation
- 25. compteurs Jquery et variables et crochets
- 26. Réentrée de code et sécurité de filetage
- 27. Future.get() et InterruptedException filetage Asynchronous
- 28. Filetage GMail, IMAP et Ruby
- 29. Filetage C# et Windows Forms
- 30. Filetage sur Windows et Linux
Yah, j'ai fini par réfléchir là-dedans et j'ai vu ça. Ensuite, j'ai lu l'aide, et il lit que seules les méthodes statiques sont thread safe. Donc, je suppose que je suis coincé avec un dilemme philosophique: Puisque la documentation ne garantit pas la sécurité, devrais-je traiter l'encapsuleur actuel comme un détail d'implémentation, l'ignorer et créer des instances spécifiques aux threads? une erreur de documentation et continuer avec les compteurs partagés? compte tenu de ce que je vois dans le code, je pense que je suis en sécurité, mais 15 ans d'ingénierie logicielle m'ont blasé, alors je pourrais aller conservateur. – JMarsch
Si vous voulez une garantie avec garantie, vous devez appeler Microsoft. –
Yah, je sais, je ne m'attends pas à ça ici. Je sonne juste ce que je pense. – JMarsch