Приложение WPF запускается слишком долго - PullRequest
2 голосов
/ 16 декабря 2011

Я создаю приложение WPF, которое использует библиотеку Fluent.

На моем компьютере с Windows 7, 2 ГБ ОЗУ и трехъядерным процессором AMD, после двойного щелчка по значку программы, изображение Splash отображается примерно через 1-2 секунды.

Но на старом компьютере моего брата с Windows XP, 512 МБ ОЗУ и процессором Intel Celeron 2,0 ГГц (одноядерный) после двойного щелчка по значку программы, во-первых, запускается процесс PresentationFontCache.exeи он использует почти 100% процессора в течение нескольких секунд.И общее время, необходимое для отображения начального изображения Splash, составляет почти 30 секунд (или больше).

Я не хочу, чтобы некоторые пользователи ждали 30 секунд для отображения заставки и около 7-8 секунд длязагрузка приложения.(процесс загрузки моего приложения занимает 7-8 секунд)

Также я думаю, что 1-2 секунды слишком высоки для просто отобразить начальный SplashImage , он должен отображаться немедленно.

Как решить эту проблему?

Ответы [ 3 ]

4 голосов
/ 16 декабря 2011

Но на старом компьютере моего брата с Windows XP, 512 МБ ОЗУ и процессором Intel Celeron 2,0 ГГц

Да, и угадайте - запуск интернет-exlporer также занимает много времени. Это не компьютер, это дерьмо. По крайней мере, 1 ГБ памятки поможет. Приложения WPF не являются приложениями с очень низким потреблением ресурсов, они созданы для современных ОС.

Я не хочу, чтобы некоторым пользователям приходилось ждать 30 секунд для отображения заставки

Используйте стандартный механизм прошивки .NET (который загружается даже до полной инициализации среды выполнения).

http://www.abhisheksur.com/2010/05/creating-splash-screen-without-code.html

Затем загрузите код WPF.

1 голос
/ 16 декабря 2011

Похоже, вы могли бы профилировать свое приложение для производительности, чтобы увидеть, где находится ваше узкое место, и выяснить, что его вызывает, чтобы вы могли знать, что исправить в своем коде, чтобы оптимизировать производительность.

Вы можете использовать классы System.Diagnostics Пространство имен. Как класс PerformanceCounter и т. Д.

Если у вас есть деньги, которые вы можете потратить, вы можете использовать RedGate Develper Bundle для .NET Он имеет профилировщик производительности, профилировщик памяти и т.д.

Есть и другие более дешевые альтернативы.

0 голосов
/ 16 декабря 2011

Presentationfontcache.exe - это служба Windows Presentation Foundation от корпорации Microsoft, принадлежащая .NET Framework.Обычно он использует высокую загрузку ЦП.

Вы можете попробовать остановить службу, удалив созданный файл: Windows \ ServiceProfiles \ LocalService \ AppData \ Local \ FontCache4.0.0.0.dat и перезапустив службу, чтобы проверить,это помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...