QMUI / LookinServer

Free macOS app for iOS view debugging.
https://lookin.work
MIT License
2.67k stars 402 forks source link

Please provide partial view refresh functionality. 建议提供小范围视图刷新功能 #141

Closed starFelix closed 10 months ago

starFelix commented 11 months ago

Now Lookin has added a lot of dynamic selector detection logic. In cases where there are a large number of view hierarchies, this leads to significant performance degradation. It is suggested to provide partial view refresh functionality to avoid unnecessary screen capture operations. Alternatively, the screen capture logic can be optimized by not capturing screenshots of collapsed nodes and only capturing them when expanded. 现在 Lookin 增加了很多动态检测selector的逻辑. 在view 视图极多的情况下. 这个性能劣化较大. 希望提供局部视图刷新功能, 以避免多余的截屏操作. 或者截屏逻辑可以优化一下, 未展开的节点就不截屏. 在展开的时候才做截屏.

hughkli commented 11 months ago

“局部视图刷新”这个 feature 的提议非常好,然而实现的可能性不大,因为工作量大 & 需要处理的 corner case 非常多,作为业余开源项目,我暂时没有这个精力去开发。

至于你说的“动态检测selector的逻辑的性能劣化较大”,这个我倒是没测过,这种真的会影响性能吗?

starFelix commented 10 months ago

“局部视图刷新”这个 feature 的提议非常好,然而实现的可能性不大,因为工作量大 & 需要处理的 corner case 非常多,作为业余开源项目,我暂时没有这个精力去开发。

至于你说的“动态检测selector的逻辑的性能劣化较大”,这个我倒是没测过,这种真的会影响性能吗?

没有明确的数据指标, 之前在别的项目分析卡顿的时候, 有发现一些动态化代码是性能劣化的因素.

hughkli commented 10 months ago

根据我的直觉,“截屏 & 图片编码”应该是耗时的主要因素,“动态检测selector的逻辑”这种相比之下应该可以忽略。

总而言之,由于“小范围刷新”这个 Feature 有一定开发成本(功能设计 & Bad Case 的处理),收益有限,所以我这边暂时没有人力投入计划哈。

不过 Lookin 1.0.4 确实在操作图层时有很大的卡顿劣化,这两天会发一个新版本解决这个。