首页新闻找找看学习计划

GridView的内存占用过大

0
[已解决问题] 解决于 2016-09-04 18:26

自制一个音乐播放器,需要使用一个GridView,用于显示音乐文件的专辑图片和其他文本信息。存储音乐文件引用的泛型列表List<StorageFile>的Count接近一千。加载过程中,GridView页面的占用内存持续飙升,最后稳定在500M以上。

起初怀疑是泛型列表的问题。但在其他使用listview或listbox的页面绑定同样的列表,内存占用只增加了10-15m左右。所以确定是gridview的问题。

接着怀疑是图片的问题。把图片相关的语句注释掉后,使用的内存没有丝毫减少。

综上,判定是GridView自身的内存占用过大。但这个东东不是本身就集成了虚拟化吗???怎么解决内存的占用过大呢?

一只菜鸡的主页 一只菜鸡 | 初学一级 | 园豆:152
提问于:2016-09-02 17:22
< >
分享
最佳答案
0

分页

奖励园豆:5
happydaily | 小虾三级 |园豆:581 | 2016-09-02 17:24

请问具体要怎么做呢?可以给一个小范例吗?

一只菜鸡 | 园豆:152 (初学一级) | 2016-09-03 00:39
happydaily | 园豆:581 (小虾三级) | 2016-09-03 14:37

@happydaily: 页面打不开……

一只菜鸡 | 园豆:152 (初学一级) | 2016-09-03 16:37

@happydaily: 分页的功能在uwp里被虚拟化代替了。我的解决方法是采取异步加载图片的方式(证实了后台的图片读取方法是占用内存过大的真正原因)。同时,在前台使用了x:bind和x:phase的组合代替了原有的binding。同时,减少图片读取的数量至不影响显示的最小量。现在的内存占用已经从500m+降至了70m左右。

再次感谢!

一只菜鸡 | 园豆:152 (初学一级) | 2016-09-04 18:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册