У меня есть приложение WPF, и оно медленное.
Это НЕ рендеринг. Во-первых, рендеринг довольно прост, а во-вторых, я смотрел его с помощью WPF Performance Toolkit - ничего.
В моем собственном коде НЕ. Во-первых, модульные тесты работают быстро, а во-вторых, если я заменяю все DataTemplates на пустые, все работает быстро.
Пока, похоже, что медленная часть - это создание экземпляра шаблона. То есть, когда вы запускаете приложение и открываете сложный экран, это занимает много времени. И "много" я имею в виду "много". Иногда может быть целых 3-5 секунд - например, когда есть datagrid со 100 строками. Но когда вы переходите на другую вкладку, а затем возвращаетесь к тому же экрану, она открывается быстро (пока его модель просмотра остается на месте).
Это очень раздражает не только потому, что оно медленное, но и потому, что я ничего не могу с этим поделать. Если бы у меня был некоторый контроль над медлительностью, я мог бы, может быть, показать сообщение "открытие, пожалуйста, подождите" или что-то еще...
Кроме того, когда я смотрю на некоторые другие приложения WPF (в частности, ILSpy), они, похоже, работают достаточно быстро, несмотря на большие объемы данных. Это заставляет меня поверить, что я, вероятно, что-то делаю неправильно. Но я не знаю, с чего начать.
Любые идеи? Любые классические ошибки? Любые советы?