在有像 1,00,000 这样的大量孩子的列表视图中使用 AutomaticKeepAliveClientMixin 是不是很好?
Posted
技术标签:
【中文标题】在有像 1,00,000 这样的大量孩子的列表视图中使用 AutomaticKeepAliveClientMixin 是不是很好?【英文标题】:Is it good to use AutomaticKeepAliveClientMixin in listview having large amount of children like 1,00,000.?在有像 1,00,000 这样的大量孩子的列表视图中使用 AutomaticKeepAliveClientMixin 是否很好? 【发布时间】:2020-11-16 17:54:51 【问题描述】:我正在使用 AutomaticKeepAliveClientMixin 使列表视图中的小部件保持活动状态,但是在滚动时感觉它挂了很多,我的意思是滚动不流畅,并且列表中还有重复的小部件。
【问题讨论】:
您是否在调试模式下运行您的应用程序? 是的,我在我的 AVD 模拟器中运行它。 模拟器不同,调试模式不同。 不,我没有在调试模式下运行它 要知道你的应用程序在debug
模式下运行,如果你没有设置,你会在你的应用程序的右上角看到一个类似红色丝带的东西(上面写着调试) debugShowCheckedModeBanner:
为假
【参考方案1】:
在debug mode
中,编译器为所有变量发出调试符号并按原样编译代码。 debug
模式下你无法判断你的应用性能
release mode
中包含一些优化:
-
根本不编译未使用的变量
如果某些循环变量被证明是不变量,编译器会将其从 loop.p 中取出。
不包括用
debug
指令编写的代码等。
只有在发布模式下,您才能判断您的应用性能。所以,不用担心应用的流畅度或性能
【讨论】:
但是我可以在 listview 中使用 AutomaticKeepAliveClientMixin 来处理 10 万个或更多的小部件吗,它是否会因负载过多而影响应用程序的性能 我猜它可能会影响应用程序的性能,因为 10 万是一个很大的数字。【参考方案2】:如果要在 ListView 中显示 1,00,000 个项目,则应考虑使用 Pagination
。我相信这将有助于提高性能。
【讨论】:
以上是关于在有像 1,00,000 这样的大量孩子的列表视图中使用 AutomaticKeepAliveClientMixin 是不是很好?的主要内容,如果未能解决你的问题,请参考以下文章
R中是不是有像bigmemory这样的包可以处理大型列表对象?