Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
WPF оптимизация кода для отображения данных
|
|||
|---|---|---|---|
|
#18+
Задача: на входе dataTable, на выходе ObservableCollection Делаю так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Можно ли сделать оптимальнее и быстрее? Нужна очень быстрая отрисовка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2010, 21:20 |
|
||
|
WPF оптимизация кода для отображения данных
|
|||
|---|---|---|---|
|
#18+
testing22, а выборку сразу в коллекцию нельзя сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2010, 22:13 |
|
||
|
WPF оптимизация кода для отображения данных
|
|||
|---|---|---|---|
|
#18+
Proga, выкинуть lst? У меня не получилось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2010, 22:24 |
|
||
|
WPF оптимизация кода для отображения данных
|
|||
|---|---|---|---|
|
#18+
testing22Proga, выкинуть lst? У меня не получилось Сервер, что не доступен? Выдержка из хелпа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. можно и ORM прикрутить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2010, 23:03 |
|
||
|
WPF оптимизация кода для отображения данных
|
|||
|---|---|---|---|
|
#18+
Как вариант,можно забацать класс с наследованием IList и INotifyPropertyChanged. Работать должно быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2010, 23:14 |
|
||
|
WPF оптимизация кода для отображения данных
|
|||
|---|---|---|---|
|
#18+
Proga, код из хелпа - имеешь в виду заполнять мой ObservableCollection в конструкторе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2010, 23:55 |
|
||
|
WPF оптимизация кода для отображения данных
|
|||
|---|---|---|---|
|
#18+
testing22, ты ведь если пораскинуть мозгами, хочешь,чтобы скорость прихода данных по каналу связи, не увеличивалась за счет этапа отображения. это походу просто эго твое не дает тебе покоя :) ты поставь на формочку таймер с надписью "Следующие обновление через 00:01:00" ,который ведет обратный отсчет. когда пользователь будет это видеть, то все будет хорошо, и он не будетг оворить, дайте быстрее. и если тебе удается сделать это, то у тебя есть целая минута,чтобы в отдельном потоке подготовить данные и незаметно обновить. также потом можешь сделать историю,чтобы юзер,мог посмотреть историю данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2010, 10:22 |
|
||
|
WPF оптимизация кода для отображения данных
|
|||
|---|---|---|---|
|
#18+
AlexeiK, Да понимаешь, тут дело даже не столько в скорости уже, а в том, что отрисовка одного небольшого грида (5*50) приведенным способом приводит к существенной загрузке проца, и она связана чисто с отрисовкой. Без отрисовки 2%, с отрисовкой 15-25%. Данные обновляются часто, но переходить на таймер не хочется, хочу до обновлять при поступлении, компы-то сейчас ого-го. Вот и пытался тут уточнить, в основном мне не давала покоя ObservableCollection. Пока вот подсказали это http://peteohanlon.wordpress.com/2008/10/22/bulk-loading-in-observablecollection/, но на-глазок изменений в нагрузке на проц почему-то не заметил... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2010, 11:11 |
|
||
|
WPF оптимизация кода для отображения данных
|
|||
|---|---|---|---|
|
#18+
testing22, а цель то какая сейчас? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2010, 11:58 |
|
||
|
WPF оптимизация кода для отображения данных
|
|||
|---|---|---|---|
|
#18+
AlexeiK, Сейчас работает приемлемо, но пытаюсь к минимуму затраты на отрисовку: 1.времени 2.ресурсов процессора Сразу было подозрение, что поэлементное добавление в ObservableCollection дает увеличенную нагрузку, но вариант с подавлением OnCollectionChanged во время добавления элементов, почему-то не привел к ее уменьшению. Из вариантов вижу: 1. сделать по таймеру 2. сравнивать пришедшую таблицу с уже существующей и отображенной, и перерисовывать только изменившиеся ячейки 3. написать свой контрол с нуля (пока использую датагрид) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2010, 12:57 |
|
||
|
WPF оптимизация кода для отображения данных
|
|||
|---|---|---|---|
|
#18+
testing22, если тебе надо просто отобразить в виде грида,то быстрее и проще сделать свой контрол. рисовать на wpf просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2010, 13:29 |
|
||
|
WPF оптимизация кода для отображения данных
|
|||
|---|---|---|---|
|
#18+
AlexeiK, Не уверен, что самодельный контрол будет быстрее списка или грида... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2010, 17:56 |
|
||
|
WPF оптимизация кода для отображения данных
|
|||
|---|---|---|---|
|
#18+
testing22Не уверен, что самодельный контрол будет быстрее списка или грида... А грид/лист инопланетянами написан? Какая разница где рисовать - WPF, GDI(+),DIRECT3D,OPENGL - объектную модель сверх необходимого наворачивать не стоит, чем страдают разнообразные коммерческие и некоммерческие гриды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2010, 18:53 |
|
||
|
|

start [/forum/topic.php?fid=21&fpage=61&tid=1442627]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 163ms |

| 0 / 0 |
