Xttx
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Итак, после читки всех статей (кстати, спасибо!), и угробленных нервов, произведенные замеры показали что: при запуске программы она занимает в памяти около 60мб (много, конечно, ну да Бог с ней). Во время первого цикла анимации (на 20-30фпс) количество занимаемой памяти непременно растёт, и в конце цикла доходит до 160мб, после чего анимация прокручиваеться стабильно на 97фпс! Ещё раз залез в мсдн/советы по оптимизации, выполнил все рекоммендации, теперь картинки грузяться так: Dim uriBitmap() As BitmapDecoder Dim cachedSource() As CachedBitmap ************************************ ReDim uriBitmap(LabelTextureFiles.GetUpperBound(0)) ReDim cachedSource(LabelTextureFiles.GetUpperBound(0)) For Each Item In LabelTextureFiles uriBitmap(counter) = BitmapDecoder.Create(New Uri(Item, UriKind.Absolute), BitmapCreateOptions.DelayCreation, BitmapCacheOption.OnLoad) cachedSource(counter) = New CachedBitmap(uriBitmap(counter).Frames(0), BitmapCreateOptions.None, BitmapCacheOption.OnLoad) counter = counter + 1 Next ************************************* Теперь уже при запуске проги имеем 210 мб занятой памяти! (конечно, теперь же используються два массива с картинками, причем с одинаковыми, только разных типов). И что мы получили? Ровным счётом ничего! Занимаемая память в процессе первого цикла анимации больше не увеличиваеться (что говорит о том, что все битмэпы загружены в память), но этот самый первый цикл воспроизводиться по прежнему на 20-30фпс Снова читаем о производительности, снова нервы, снова немного головной боли и..... С поправкой на то что я всё правильно понял, то при первом цикле анимации они кэшируються не в СИСТЕМНУЮ память, а в ВИДЕО, и только после этого может иметь место аппаратное ускорение, а первый цикл, стало быть воспроизводиться в програмном режиме.... Ещё одна тупиковая ветвь эволюции этой проги.... Опять бьюсь башкой об столь... |