listview中存放大量数据?Java中是否有所谓的“非托管资源”的概念

时间:2018-03-04 15:10:01   浏览:次   点击:次   作者:   来源:   立即下载

在做类似wireshark的抓包软件,有①个纵向的list来显示包的信息,在显示⑤⓪⓪⓪多条的时候内存占用达到了惊人的①.⑤G。

同类软件wireshark,微软excel等都有纵向list,大量数据内存占用依然可观,想用磁盘缓存数据,但不知道如何具体实现比较完美,求大神解答!

如果你用的是WPF或者UWP, 每①个Element都要占用不少内存,你设计的style/template上可能有多重element, 所以,每①个Item显示出来都要占用不少内存。

基本上,提高性能减少内存的方式就②种:

①) 用尽可能少的FrameworkElement显示同样的效果, 尽可能用简单的控件,比如Grid的Layout Algorithm要比StackPanel/DockPanel复杂的多,如果能用简单的实现,就不要用复杂的。

②) Virtualize Item, 比如WPF里面的VirtualizeStackPanel, 就是即使你bind ⑤⓪⓪⓪item到ListView上,也只有真正显示的Item会使用UI Element, 其它的都只存数据,不更新UI Element.

收起

相关推荐

相关应用

平均评分 0人
  • 5星
  • 4星
  • 3星
  • 2星
  • 1星
用户评分:
发表评论

评论

  • 暂无评论信息