![]() |
|
Модераторы: gambit, Kefir, Partizan |
![]()
|
|
| bernex |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 19.9.2007 Репутация: нет Всего: нет |
Сейчас приложение работает кодом:
часть 1:
По таймеру прорисовываю в 2 Image ,наподобие двойной буферизации:
Проблема: прорисовка нереально тормозит на компьютере p4 2гигагерц... Очень большие объемы рисунка получаются при прорисовке, видимо из-за этого... Подскажите как это все ускорить использую .net 3.5 sp1 WritableBitmap и видеорендерер не помогают, если обновлять их по таймеру.... Можно ли сразу сделать указатель на WritableBitmap в части кода и работать без таймера например, не удается сделать производительную реализацию... Добавлено через 1 минуту и 13 секунд Если сделать разрешение больше 800 600 вообще ужас будет, а нужен запас по производительности.... |
||||
|
|||||
| kelus |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 4.11.2008 Где: Minsk Репутация: нет Всего: нет |
а зачем два раза делать bm2.Dispose() и GC.Collect() ?
и я бы еще вынес за обработку таймера некоторые вещи (может это тоже ускорит)... примерно так
в обработке по таймеру осталось бы примерно следующее:
сам не проверял - сейчас нет времени, но по идее должно работать. разве что я не работал с IntPtr и не уверен, надо ли его удалять вручную. |
||||
|
|||||
| bernex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 19.9.2007 Репутация: нет Всего: нет |
Вообще ничего абсолютно не дало, проблема в больших объемах данных в прорисовке....
Может можно делать деление азображение пополам и рисовать по отдельности?? Рисование прямо в рисунок без промежжуточного было бы наверно решением (( пока безрезультатно даже на E8500 3.2гц ТОРМОЗИТ иногда...... (((( |
|||
|
||||
| kelus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 4.11.2008 Где: Minsk Репутация: нет Всего: нет |
по поводу двойной буферизации было тут http://forum.vingrad.ru/forum/topic-161242/view-all.html может поможет что
кстати, неплохо бы наставить брейков и посмотреть, в каком конкретно месте больше всего тормозит |
|||
|
||||
| bernex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 19.9.2007 Репутация: нет Всего: нет |
хм.. а как конкретнее? как спец сказал из-за больших объемов копирования чтения в память.... железо не успевает...
Добавлено через 11 минут и 29 секунд Там проблема в том что WPF - это DirectX а bitmap это просто память. И данные необходимо копировать из одной области памяти в другу. Для того чтобы это не делать в ручную есть InteropBitmap но я его так и не смог заставить работать. А когда делаеш в ручнуй - тормозов неизбежать. 50-70 млс на копирование. |
|||
|
||||
| dazy |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 15.9.2006 Репутация: 3 Всего: 8 |
Может DeepZoom поможет?
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |