Analiza wydajności naszej aplikacji wykazała, że wykorzystanie procesora osiągało szczyt w momencie, gdy pamięć musiała być przydzielona przez zarządzanie pamięcią .NET.Zarządzanie pamięcią dla aplikacji .NET (wpf)
Była (ogromna) ilość pamięci po prostu za darmo, ale nie została zgłoszona przez aplikację, szukała wolnego miejsca w deklarowanej już części pamięci.
Czy można skonfigurować aplikację, aby żądała większej ilości pamięci, jeśli jest to możliwe?
Czy jest to prawdopodobnie związane z faktem, że aplikacja jest hostowana pod Citrix?
Co masz na myśli mówiąc "była ogromna ilość pamięci po prostu za darmo?" Czy masz na myśli to, że faktycznie został zwolniony, tj. Przez 'VirtualFree', czy GC po prostu skompaktował jedno z SOH? Czy twoja powolna alokacja jest na LOH lub SOH? –
Liczniki wydajności pokazały, że na serwerze Citrix maksymalnie ok. 20% pamięci Citrix było w użyciu w tym procesie. Zastanawiam się, dlaczego proces nie używa np. 30-40%? Niestety LOH/SOH nie znajduje się w tych danych wydajności. – Gerard
Czy jest to proces 32- lub 64-bitowy? Czy mógłbyś podać rzeczywiste liczby w pytaniu? Pomoże to w zrozumieniu, jakie ograniczenia możesz uderzyć. – codekaizen