遍历pocoUI树的效率

本文探讨了遍历大型PocoUI树的三种方法:offspring()、offspring()指定参数和freeze。通过实例对比,发现offspring()全树遍历耗时144秒,而使用offspring()指定参数和freeze方法可显著提升效率,达到4.8秒左右。然而,freeze方法创建的是静态副本,不支持实时更新,需注意内存管理和适时刷新。

如何提高遍历pocoUI树的效率

工作中经常碰到需要遍历pocoUI树的情况。不同的写法差别很大,写个博客记录一下。
poco的实例,存储了整个项目的UI树,体积可能非常大。
以我手头的项目为例,其完整的UI树,以字典形式存在txt文本里,容量高达272k。在这里插入图片描述
在这里插入图片描述
poco树中的各种控件都有其属性,下面就以这个“UICarmeraRoot”对象为例进行各种写法的效率比对。在这里插入图片描述
在对该poco实例进行操作前,先简单对其遍历一遍,看看耗时多少。在这里插入图片描述
可知:遍历一个272k的字典,python只需要0.48秒。

1.offspring()
查询UI树里,最偷懒的写法就是直接生成一个全树的实例,然后取其所有后代,再在其后代中逐个查找符合条件的属性对应的对象。
示例代码为:

uioffspring=poco("UIRoot(Clone)").offspring()
for x in uioffspring:
	if x.attr("name") == 'UICameraRoot':
		print(x.get_text())
		print('查找控件过程结束')  
		break
	else :
		print
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值