Je finalise le test d'une application multi-thread qui semble fonctionner correctement jusqu'à ce que je la mette sous forte charge, puis que j'insiste sur la machine en cours d'exécution. Ensuite, je commence à voir certains des cas-limites étrangers que je ne prévoyais pas produire des conditions inattendues/imprévues. La façon dont j'insiste sur la machine est en faisant un vide sur une très grande base de données sqlite. Est-ce que quelqu'un a d'autres bonnes façons d'induire ce type de scénario de charge lourde?Quels sont les bons moyens d'induire des problèmes de threads?
Répondre
De quel type de stress parlez-vous? Mémoire, CPU, pool de threads complet ou E/S de fichier? Je voudrais écrire une application simple qui a un thread qui consomme de la mémoire, un thread qui consomme des cycles CPU, un thread qui lie le pool de threads, et un thread qui thrashes le disque. Accrocher une interface utilisateur pour contrôler l'appétit de chaque thread et ajuster les «boutons» pour klaxonner avec votre application.
susceptibles de vous intéresser - Unit testing a mutlithreaded application
Les problèmes de filetage dus à un mauvais verrouillage tendent à se révéler sous une charge importante car le minutage change. Ce n'est pas réellement la charge lourde qui produit le problème, c'est la synchronisation changée due aux retards aléatoires d'ordonnancement. Vous pouvez reprogrammer les problèmes sans lourdes charges en introduisant des retards aléatoires dans l'exécution du thread. C'est l'approche qu'utilise Chess.
- 1. Quels sont les bons moyens de verrouillage intermachine?
- 2. Quels sont les bons moyens de gérer les paramètres dans les applications gui?
- 3. Quels sont les bons diagrammes de carte?
- 4. Quels sont les bons moyens d'écrire une application PHP avec support de modules?
- 5. Quels sont les bons moyens d'architecturer une classe personnalisée "ClaimsAuthorizationManager" de Windows Identity Foundation?
- 6. Quels sont les bons tutoriels Wireshark?
- 7. Quels sont les bons moyens pour concevoir ou représenter un état?
- 8. Quels sont les bons forums pour discuter des problèmes de conception de sites Web?
- 9. Quels sont les bons formats de sérialisation alternatifs?
- 10. Quels sont les bons moyens de mettre en œuvre des résultats de recherche et de recherche en utilisant ajax?
- 11. Quels sont les bons frameworks d'automatisation des tests?
- 12. Quels sont les bons moyens de télécharger des données .csv en vrac dans une application web en utilisant Django/Python?
- 13. Quels sont les meilleurs moyens d'améliorer la sécurité de l'application?
- 14. Quels sont les moyens de déboguer un core dump?
- 15. Quels sont les bons moyens de remplir une base de données de développement de rails avec de fausses données?
- 16. Quels sont les bons exemples de bibliothèques Pythonic?
- 17. Quels sont les bons exemples d'utilisation de WPF Datagrid?
- 18. Quels sont les bons modèles de conception pour CRUD?
- 19. Quels sont les bons serveurs d'applications pour les piles LAMP?
- 20. SSIS: Quels sont les bons tutoriels de débutant SSIS?
- 21. Quels sont les bons blogs de Ruby on Rails?
- 22. Quels sont les moyens d'attaque sur un site Web?
- 23. Quels sont les bons problèmes à résoudre à l'aide de procs stockés CLR?
- 24. Quels sont les problèmes résolus par Maven?
- 25. Quels sont les problèmes du modèle MVVM?
- 26. Quels sont les bons exemples d'utilisation du pattern/idiom CALLBACK?
- 27. Quels sont les bons guides pour la programmation d'écran tactile?
- 28. Quels sont les bons addins d'utilisabilité pour Visual Studio 2008?
- 29. Recommander de bons moyens d'étendre CSS
- 30. Quels sont les bons problèmes C# à résoudre pour la pratique?
Merci pour l'idée. Je pense que je vais tirer le meilleur parti de faire quelque chose comme ça. –