Mam dużą wielowątkową aplikację C# działającą na wielordzeniowym czterokierunkowym serwerze. Obecnie korzystamy z funkcji czyszczenia pamięci w trybie serwera. Jednak testy wykazały, że tryb stacji roboczej GC jest szybszy.Czy powinniśmy używać "śmieci" do zbierania śmieci "stacji roboczej" lub "serwera"?
zarządzanych aplikacji kod korzystające z interfejsu API serwera otrzymują znaczne korzyści z korzystania z kolektora serwera zoptymalizowany śmieci (GC) zamiast GC domyślne stacji roboczej.
Stacja robocza to domyślny tryb GC i jedyny dostępny na komputerach z jednym procesorem. Stacja robocza GC jest hostowana w konsoli i aplikacjach Windows Forms. Wykonuje pełne zbiory (generacji 2) równolegle z uruchomionym programem, minimalizując tym samym opóźnienie. Tryb ten jest przydatny w aplikacjach klienckich, gdzie postrzegana wydajność jest zwykle ważniejsza niż nieprzetworzona przepustowość.
Serwer GC jest dostępny tylko na komputerach wieloprocesorowych. Tworzy oddzielną sterowaną stertę i wątek dla każdego procesora i równolegle wykonuje kolekcje. Podczas kolekcjonowania wszystkie zarządzane wątki są wstrzymywane (wątki z natywnym kodem są wstrzymywane tylko wtedy, gdy zwracane jest wywołanie natywne). W ten sposób tryb GC serwera maksymalizuje przepustowość (liczbę żądań na sekundę) i poprawia wydajność wraz ze wzrostem liczby procesorów. Wydajność szczególnie wyróżnia się na komputerach wyposażonych w cztery lub więcej procesorów.
Ale nie widzimy połysku osiągów !!!! Czy ktoś ma jakieś rady?
DanC. To pierwsze, jakie słyszałem o trybach GC. Czy możesz publikować linki do odpowiednich stron MSDN? – spender
Jakiego rodzaju jest oczekiwany efekt? Czy Twój program jest oparty na interfejsie GUI systemu Windows, czy na jakiejś usłudze sieciowej? –
Dzięki Johannes. – spender