2013-05-17 12 views
6

Mój wpf ma dziwny problem związany z wydajnością uruchamiania na innym komputerze o tej samej specyfikacji. Jeden komputer ładuje mój program mniej niż sekundę. Inny komputer o tej samej specyfikacji ładuje się co najmniej 10 sekund.Program WPF uruchamia się superszybko na jednym komputerze, ale bardzo wolno na innym

Za pomocą Visual Profeta Performance Profiler, zauważam, że dwa komputery ładują program inaczej! co jest takie dziwne.

Mój problem jest w zasadzie taki sam, jak ten post: C# WPF Very slow application launch

Profiler wydajność na „szybkim” komputera (to znaczy uruchomić program szybki) pokazuje, że program zaczyna się System.Windows.Application. Uruchom(), , natomiast "wolny" pokazuje, że zaczyna się od System.Windows.Application. RunInternal (...)

Z dodatkowym "wewnętrznym" czasem buty wzrosła 10 razy, mimo że dwa komputery są tej samej specyfikacji, a kod źródłowy jest taki sam. (W rzeczywistości jest to zwykły plik startowy WPF light mvvm)

Jakieś pomysły?

+4

'Uruchom' wzywa do 'RunInternal', więc myślę, że to czerwony śledź. –

+0

Prawdopodobnie to [TAK post] (http://stackoverflow.com/questions/7610009/wpf-warm-appdomain-startup-performance-application-runinternal-xamlreader-load) pomoże ci. W rzeczywistości nie jest to prawdziwa odpowiedź, ale ilustruje niektóre sposoby optymalizacji uruchamiania aplikacji. – DHN

+0

@KentBoogaart Wiem, że Run nazywa RunInternal. Ale wydaje się, że powolny wywołuje RunInternal bezpośrednio, zamiast wywoływać Run() z pierwszej ręki. – user2127480

Odpowiedz

0
  1. Wyloguj niepotwierdzone wyjątki (na poziomie aplikacji).
  2. Sprawdź, czy użytkownicy na obu komputerach mają taki sam poziom autoryzacji (oba są administratorami, tj. Lub raczej nie są).

To powinno pomóc.

0

Inną sprawą do sprawdzenia może być antywirus. Czy jedna maszyna pracuje w czasie rzeczywistym AV, a druga nie? Czy zalogowani użytkownicy są członkami tych samych grup? Czy oba urządzenia znajdują się w tej samej jednostce organizacyjnej?

0

Sprawdź w obu komputerach, jakie usługi są uruchomione. Sprawdź swoje wykorzystanie procesora w dwóch scenariuszach, uruchamiając aplikację i po zamknięciu aplikacji.

Powiązane problemy