Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2016, 23:59   #11
chugada
Пользователь
 
Регистрация: 31.01.2016
Сообщений: 17
По умолчанию

Цитата:
Картинки фризятся?
нет, просто
<Image Source="Resources/image.png" Height="13" Width="47" VerticalAlignment="Center" HorizontalAlignment="Center">
но есть ректанглы в которых из ресурсов рисуются "картинки" ввиде путей
<Rectangle.Fill>
<VisualBrush Visual="{StaticResource res1}"/>
</Rectangle.Fill>

Цитата:
А профайлер запускали?
а как?
chugada вне форума Ответить с цитированием
Старый 01.02.2016, 00:22   #12
chugada
Пользователь
 
Регистрация: 31.01.2016
Сообщений: 17
По умолчанию

Убрали все колонки, оставили одну где просто биндятся данные
Код:
<DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <TextBlock Text="{Binding Data, StringFormat={}{0}%}" HorizontalAlignment="Right"/>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
тормоза маленькие но все же есть, что за такое, в гриде прописали
EnableRowVirtualization="True" VirtualizingStackPanel.Virtualizati onMode="Recycling"
не помогает
chugada вне форума Ответить с цитированием
Старый 01.02.2016, 01:28   #13
chugada
Пользователь
 
Регистрация: 31.01.2016
Сообщений: 17
По умолчанию

Хоть бери и браузер встаивай. в нем все тоже самое работает без вопросов.
chugada вне форума Ответить с цитированием
Старый 01.02.2016, 09:50   #14
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Тяжелый случай, видимо загвоздка не на поверхности лежит

На хабре была довольно хорошая статья про штатный профайлер студии
https://habrahabr.ru/post/98361/

Также можно попробовать dotTrace от JetBrains, там 10 дневная триалка есть
https://www.jetbrains.com/profiler/

А то без профилирования искать узкое место в производительности можно доооолго )
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 01.02.2016, 15:38   #15
chugada
Пользователь
 
Регистрация: 31.01.2016
Сообщений: 17
По умолчанию

Так не понятно в производительности ли дело.
Оставили 1 колонку, пересоздаем коллекцию, виртуализация выставлена, все равно
например нажимаешь в момент обновления на какую либо кнопку или просто что что делаешь в гуи, и видно как все "замерзает".. никакой реакции.
Попробовали с ListView тоже самое.

Подскажите, работаем в 2015 студии, в меню Analyze нет никаких Performace Wizard или что то подобного, их надо както отдельно установить или они в другом месте или в чем причина?

Последний раз редактировалось chugada; 01.02.2016 в 15:40.
chugada вне форума Ответить с цитированием
Старый 01.02.2016, 16:00   #16
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Цитата:
Так не понятно в производительности ли дело.
оставлю без комментариев...

Цитата:
в меню Analyze нет никаких Performace Wizard или что то подобного,
Цитата:
Также можно попробовать dotTrace от JetBrains, там 10 дневная триалка есть
https://www.jetbrains.com/profiler/
или можем договориться на сдельной основе о поиске причины торможения
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 01.02.2016, 16:39   #17
chugada
Пользователь
 
Регистрация: 31.01.2016
Сообщений: 17
По умолчанию

С Performace Wizard разобрались, сейчас будем пробовать.

Попутно браузер встроили, попробовали с ним, весьма впечатляет.

Посмотрим на итоги анализа, потом будем решать что делать.
chugada вне форума Ответить с цитированием
Старый 01.02.2016, 17:50   #18
Akeloya
Форумчанин
 
Регистрация: 27.01.2014
Сообщений: 115
По умолчанию

А почему вы не используете ObjectDataSource c включенным IsAsync=true?
Добавлять данные в грид не придется, за вас это сделают обработчики. Ваша задача только добавлять данные в коллекцию через BeginInvoke из потока прослушивания

Код:
<DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <TextBlock Text="{Binding Data, StringFormat={}{0}%}" HorizontalAlignment="Right"/>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
Почему вы не используете стандартный тип колонки? биндинг и там можно указать такой же как вы написали, но при этом не используются лишние контейнеры, как у вас.

Код:
Dispatcher.BeginInvoke((Action)(() =>
{
                        this.Collection.Clear();

                        foreach (var item in sourсe)
                        {
                            this.Collection.Add(item);
                        }
}));
Это вы в грид напрямую пишите? Если да, выкиньте этот код и идите в сторону ObjectDataSource, напрямую в грид, т.е. в гуи вы ничего не должны писать.
Akeloya вне форума Ответить с цитированием
Старый 01.02.2016, 18:21   #19
chugada
Пользователь
 
Регистрация: 31.01.2016
Сообщений: 17
По умолчанию

Да какая разница какая колонка? ну тут можно, а в других навароты больше с тригерами и мультибиндингами, если оно при даже таком пидалит то что говорить о других?
Цитата:
Это вы в грид напрямую пишите?
я же в теме написал что это, ObservableCollection и в грид она биндится вот так
ItemsSource="{Binding Collection}", mvvm тут. Не принципиально это все, можно и лист простой подкидывать, раз уж все равно пересоздаем.
Осталось еще вообще отказаться от DataGrid и рисовать самим без биндингов.

Попробовали анализом пройти, упираемся в PresentationFramework и всё.
chugada вне форума Ответить с цитированием
Старый 01.02.2016, 20:30   #20
Akeloya
Форумчанин
 
Регистрация: 27.01.2014
Сообщений: 115
По умолчанию

На мсдн советуют отвязывать данные от грида на момент обновления коллекции, а затем снова привязывать, после того, как коллекция полностью сформирована.

Т.е. смысл сводится к тому, чтобы дергать UI не каждый раз при добавлении элемента в коллекцию, а один раз на всю коллекцию. Но тут есть мнение, что оно особо не поможет.

Плюс вы писали, что в каждой строчке у вас картинки есть, вы с ними что-нибудь делали?
https://msdn.microsoft.com/ru-ru/lib...v=vs.110).aspx
Akeloya вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C# + WPF] Отлов нажатий клавиш, хуки, горячие клавиши в проекте WPF Casper-SC WPF, UWP, WinRT, XAML 3 03.03.2017 15:00
КАк создать ГУИ интерфейс без среды? Алексей_2012 Общие вопросы C/C++ 5 12.01.2016 07:20
Обновление таблицы БД SqlLite - C# WPF Notan1310 WPF, UWP, WinRT, XAML 4 08.10.2015 14:34
WPF/ Обновление ItemsSource-а ShoGUN WPF, UWP, WinRT, XAML 0 02.06.2014 18:34