Подтвердить что ты не робот

Как WinRT обрабатывает BitmapImage и память изображений

Я новичок в программировании Windows Хранить приложения с помощью C#, и я пытаюсь понять, как обрабатывается память изображений. Мое приложение очень просто:

1) он ссылается на растровое изображение из файла с использованием объекта Windows.UI.Xaml.Media.Imaging.BitmapImage, а затем использует его как источник для объекта Windows.UI.Xaml.Controls.Image. В моем случае изображение на диске имеет большие размеры, чем то, что отображается на экране, поэтому оно масштабируется системой.

Мой вопрос в том, как WinRT обрабатывать память для изображения? Я использовал инструмент vmmap, и я вижу, что в разделе Mapped File есть запись для моего файла изображения. Я предполагаю, что это означает, что необработанные байты для этого файла полностью загружены в память. Поскольку это JPG, эти байты должны быть декодированы в пиксельные байты. Кажется, из моих тестов, что установка UriSource BitmapImage фактически не вызывает никакой обработки, поскольку она принимает 0 мс, и вместо этого происходит некоторая ленивая загрузка.

Итак, вопросы: какой объект является доминирующим для несжатых данных в пикселях? Какой объект является доминантом для масштабированных пиксельных данных, которые рисуются на экране? Есть ли инструменты, которые могут легко показать мне это? В мире Java я использую инструмент анализатора памяти Eclipse. Я попытался использовать PerfView, но результаты не имеют для меня никакого смысла, кажется, что инструмент предназначен для анализа производительности.

UPDATE

На конференции BUILD группа обсудила Windows Performance Toolkit. Я никогда не слышал, чтобы кто-то упоминал о PerfView, поэтому я считаю, что WPT - это новейший и лучший инструмент для анализа памяти и производительности, вот ссылка:

http://msdn.microsoft.com/en-us/performance/cc825801.aspx

4b9b3361

Ответ 1

Короткий ответ, скорее всего, "оптимально". Не будучи смартфоном, там просто много разных систем. Одно упомянутое аппаратное ускорение, вы также можете рассмотреть количество ядер, дисплейную память, скорость диска, глубину и разрешение монитора, список можно продолжать и продолжать.