Mam przycisk dialogowy uruchamiania, który tworzy model widoku okna i wiąże go z oknem (po włączeniu wirtualizacji interfejsu użytkownika). Uruchomienie okna dialogowego za pierwszym kliknięciem zajmuje tylko 1 sekundę. Ale jeśli otworzę ten sam dialog bardzo często lub z powrotem, zacznie on zabierać więcej czasu na zapełnianie źródła danych siatki dla następnej iteracji. jeśli zrobię przerwę, a następnie ponownie otworzę okno, to zajmie to tylko około 1 lub 2 sekund.Problem związany z wydajnością podczas wielokrotnego otwierania okna dialogowego w wpf
for first time populating the item source it take only 1 second:
next time populating the item source it takes 2 second
next time populating the item source it takes 3 second
next time populating the item source it takes 6 second
next time populating the item source it takes 8 second
Jednak jeśli zadzwonię GC.Collect(), która nie jest zalecane, a następnie wypełnianie źródło danych siatki zawsze trwa około 1 sekundę. ale wywołanie kosztowało mnie trochę czasu dla każdej iteracji.
Wiem, że dzwonienie pod numer GC.Collect
nie jest dobrym rozwiązaniem. Czy ktoś może zasugerować, w jaki sposób mogę zwiększyć wydajność mojej aplikacji.
Jestem bardziej zaniepokojony maszyną użytkownika, ponieważ moja maszyna ma bardzo dobrą konfigurację, podczas gdy maszyna użytkownika może nie być tak szybka.
Dlaczego otwieranie okna dialogowego zajmuje więcej czasu? Może ładujesz zbyt dużo danych. Rozważ użycie stronicowania (http://stackoverflow.com/questions/784726/how-can-i-paginate-a-wpf-datagrid) (w siatce iw zapytaniu sql). –
Może trzeba ".Uzyskać" niektórych zasobów przed zamknięciem okna dialogowego? –
Tim, ja też nie rozumiem. prawdopodobnie brakuje mi czegoś, ale nie wiem co. Poszukuję możliwych błędów –