如果 ComponentCaller 无法回收的话,需要先排除下是否是因为小程序本身的 js 逻辑导致的内存泄漏。 排查方法如下: 在微信开发者工具上点击真机调试,选择真机调试2.0,选择安卓系统(目前仅安卓支持获取内存快照) [图片] 手机扫码进行操作。例如:进入页面,退出页面。 操作结束后,点击内存面板,抓取内存快照。[图片] 在 snapshot 里搜索 ComponentCaller,带有 route 字段说明是 Page 实例。 如果后退推掉的页面实例仍在内存快照里,说明存在内存泄漏。 可选择对应的页面实例,在下方查看引用关系。(有全局对象、全局数组直接或间接引用到 ComponentCaller 实例就会造成内存泄漏) [图片] 验证:解决内存泄漏问题后,再次抓取内存快照检查实例是否已被回收。
skyline 内存泄漏如何解决 ?基础库: 3.7.7 我参照 https://developers.weixin.qq.com/community/develop/doc/000ae8dd1bcdc093e061dcdbb61c00?highLine=%25E4%25BB%25A3%25E7%25A0%2581%25E6%25B3%2584%25E6%25BC%258F%25E5%25A4%2584%25E7%2590%2586 代码片段, 在开发者工具运行是可以可以复现,即页面没有被销毁,真机调试重复进入页面内存会递增, 使用 GC 后也没有减少,因为代码比较简单,不存在跨引用的场景, 我使用 webview 加载内存是正常回收的,我不知道有什么解决办法, 因为真机调试是编译过的,我就使用 weakSet 来监听页面(不知道能在 skyline 用嘛), 然后我真机反复执行 N 次后,最后看内存其实是稳定在一个范围,不会触发闪退, 但是我 GC 后, 页面仍然不会消除,而我这边实际业务逻辑代码很复杂,出现过 闪退的情况,所以我就不知道我该怎么办了 ,如果知道是哪些页面的问题,又该如何进行改进。 [图片] 我额外使用 阻止页面释放(webview 下是可行的),结果跟没阻止一样, skyline 下 同样的表现存放的 this 没有释放, 内存也会稳定在一个范围。 getApp().userInfoChangeListener = (userName) => { this.setData({userName}) } languageListener = ({lang}) => { this.setData({lang}) }
02-10复现问题了,我们修复下
skyline渲染啊模式下,image标签切换src,长按识别二维码不生效<navigation-bar title="Weixin" back="{{false}}" color="black" background="#FFF"></navigation-bar> <scroll-view class="scroll-area" type="list" scroll-y> <view bind:tap="changeCode">点击哦</view> <image src="{{codeUrl}}" show-menu-by-longpress="{{true}}" /> </scroll-view> Page({ data: { codeUrl:'https://wework.qpic.cn/wwpic3az/185646_a2Jej-wzSMKRf2g_1723627957/0' }, onLoad() { }, changeCode(){ console.log(123) this.setData({ codeUrl:'https://wework.qpic.cn/wwpic/191350_hBpCXPIRQhiBRxS_1664336234/0' }) } })
01-22tdesign https://github.com/Tencent/tdesign-miniprogram
有没有小程序skyline实现的页面ui模板用?或者是开源的项目链接纯公益行业使用,想直接套skyline ui模版,官方的模版不够用,有没有推荐的链接发一发
01-02scroll-view 参考文档的写法:https://developers.weixin.qq.com/miniprogram/dev/framework/runtime/skyline/migration/best-practice.html#%E4%BC%98%E5%8C%96%E9%95%BF%E5%88%97%E8%A1%A8%E6%80%A7%E8%83%BD工具图片实现无缓存,走的 xhr,可以先忽略。不影响真机的实际表现, 真机的图片实现有内存和磁盘缓存。
[基础库3.7.4] skyline 性能好像有点问题skyline模式下的scroll-view,在滚动时有明显卡顿skyline的相册,打开大图返回后,不停的request相同的图片,直到内存爆掉[图片]
01-02https://developers.weixin.qq.com/miniprogram/dev/framework/runtime/skyline/migration/best-practice.html#%E4%BC%98%E5%8C%96%E9%95%BF%E5%88%97%E8%A1%A8%E6%80%A7%E8%83%BD wxml 的写法满足 list-view 要求吗
skyline的scroll-view,最近感觉出现明显的卡顿不流畅了,有相同感觉的吗?用的iPhone手机 如果切换至 webview 模式,就变流畅了
01-02如果不是无限滚动列表的话,可以先用 list-view 来解决如果 list-builder 子项是定高的话,也可以通过 itemHeight * index 算出滚动高度,然后 scrollTo 到指定位置
skyline模式 scroll-view支持scroll-into-view吗?skyline模式 scroll-view里的scroll-into-view用不了,切回webview模式下又可以用了;还有list-builder我想使用类似scroll-into-view的效果,要怎么实现,有哪位同学可以解答下吗?我看了文档说列表构造器不能使用scroll-into-view [图片]
01-02微信升级到最新的 8.0.54 看下呢? 之前修过这个问题
skyline <image>使用mode="heightFix",图片会一直请求?<image :src = "picurl" class="navBarImg" mode="heightFix"/> onLoad(options?: any) { this.picurl = '图片地址' } 仅在mode="heightFix"时,图片地址会在控制台的network中一直请求,直到小工具崩溃 skyline:1.4.0 开发工具:Nightly 1.06.2411192 基础库3.5.2
2024-11-22提供一个复现的片段?
skyline模式scroll-view设置属性associative-container会卡死?用自定义路由打开新页面,快速拖动就会卡死,简单布局的情况也会 [视频]
2024-11-06截图尺寸和原始尺寸是一样的像素,可以通过提高原始视图的尺寸来放大图片。 如果不想影响原视图,可以通过一个隐藏的视图来做,隐藏的方法可以看下 snapshot 组件文档。
使用snapshot组件截图,如何提高生成图片的分辨率?使用snapshot组件截图,如何提高生成图片的分辨率?
2024-10-21skyline 只有一条 js 线程,全局变量是多个页面之间是共享的。 webview 是每个页面有一个独立的 webview 实例,每个页面之间的 wxs 状态相互隔离。
Skyline界面渲染有bug?重新进界面数据不初始化做了一个点击计数的界面,使用Skyline后出现异常。原本WebView渲染重新进界面计数器归零,用Skyline渲染重新进界面次数保留。 代码片段连接:https://developers.weixin.qq.com/s/Bjb9iQmx7BUP 界面截图: [图片][图片] 代码截图: Wxml: [图片] Wxs: [图片] Js: [图片] 操作流程:跳转到计数界面,点几下计数,反回初始界面再跳转到计数界面。运行结果: WebView渲染: [图片] Skyline渲染: [图片] 上面是开发工具运行的情况,在Android手机上也一样。
2024-10-11