Rozważam problemy z wydajnością dużego systemu C#/.NET 3.5, który wykazuje spadek wydajności, ponieważ liczba użytkowników wysyłających żądania skaluje do 40-50 różnych żądań użytkowników na sekundę.Debugowanie i diagnozowanie problemów z konwojowaniem konwoju w .NET
Czas trwania żądania znacznie się zwiększa, podczas gdy obciążenia procesora i wejścia/wyjścia wydają się pozostawać mniej więcej takie same. Prowadzi mnie to do przekonania, że możemy mieć problem z tym, jak wspólne obiekty w naszym systemie, które są chronione za pomocą instrukcji C# lock() {...}
, mogą mieć wpływ na wydajność równoczesnego dostępu. W szczególności, podejrzewam, że występuje pewien stopień blokady konwoju na często używanych współdzielonych danych, które są chronione przez krytyczne sekcje (ponieważ odczytuje/zapisuje).
Czy ktoś ma sugestie, jak faktycznie zdiagnozować, czy konwój blokady jest problemem .. lub czy kłótnia blokady jakiegokolwiek rodzaju przyczynia się do długich czasów oczekiwania?