登录社区云,与社区用户共同成长
邀请您加入社区
本原创文章帖发布在在ArkTS内存泄漏中,有一类是ArkUI组件泄漏,只需要有快照日志就能完成对此问题的分析,不依赖开发者做任何适配。其利用ArkUI框架自动标记已销毁组件,分析准确率很高。当前ArkUI组件相关泄漏非常普遍,建议在日常开发过程中对此类问题应改尽改,原因是:1)此类内存泄漏引用链明确,修改简单;2)快照日志获取容易,通过命令行、IDE工具和API在开发态/运维态便捷获取日志;
本文在真实手机端对比了四种图像超分算法:双线性、双三次、Lanczos-3与边缘侦探DSEI。通过几何测试与实拍场景(雪山、老城、翠鸟)验证,发现算法表现高度依赖内容:平滑场景中DSEI无优势,而建筑、文字等强边缘图像则显著受益于方向感知的DSEI。梯度能量指标虽有局限,但揭示了“锐利”与“真实”的权衡。最终结论:选算法要看图,而非只看参数——经典插值不靠生成,只重构已知,是真实性优先场景的可靠选
FastKit 两件事:perfHint 把性能敏感场景报给调度器,predictIndex 预判均匀序列的下一帧。API 面小,但约束密:三档窗口上限与最小间隔成对出现、间隔是全局节拍(跨档位跨入口)、END 不占节拍、非前台拒报、tids 在 ArkTS 侧只能空着。predictIndex 均匀序列全中、加速序列保守——它是给抽帧管线做预取的,不是趋势预测器。
ArkTS 提供了一套容器类库,包括 ArrayList、HashMap、LinkedList 这些。有人会问:JS 原生的 Array、Map、Set 不能用吗?能用,但 ArkTS 容器在性能上做了专门优化,运行时通过一条字节码指令就能完成增删改查,比原生 Array 的方法调用快。这篇把线性容器和非线性容器捋一遍,重点讲怎么按场景选容器。
知道了对象追踪和三种回收算法,再看 HPP GC 就是在看一个工程化方案:怎么把这些算法组合起来,既压低 STW 时间,又控制碎片,还保证吞吐。HPP GC(High Performance Partial Garbage Collection)是 ArkTS 运行时的 GC 实现,名字里的 High Performance 来自三个设计——分代模型、混合算法、流程并发化。这篇把这三块和 Heap
短生命周期对象尽量在函数内创建,函数返回后从 Root 不可达,下次 Young GC 就回收了。Young GC 频率高、开销小,这种对象几乎无感。长生命周期对象(缓存、单例)会被晋升到老年代,Old GC 频率低、开销大。老年代对象多不是问题,问题是老年代对象频繁增删会导致碎片和频繁 Old GC。大对象(几 MB 以上的 ArrayBuffer)会直接进 HugeObjectSpace,每个
Sendable class 属性必须显式初始化。不能用!,不能省略初值。这条规则强制你写出确定的初始状态,但也意味着不能延迟初始化。: string;// 报错,必须显式初始化@Sendable// OKSendable class 不能用私有属性。用private关键字代替。Sendable 不支持增加/删除属性。对象结构在创建时固定,只能改值不能改结构。动态加属性会报错。Sendable 方
别教条。决策树是参考,不是教条。有些场景两者都能用,选你写得快、维护成本低的。一个 2 分钟的独立计算任务,用 TaskPool 写 5 行代码搞定,没必要为了"理论最优"硬上 Worker 写 50 行。TaskPool 的 3 分钟限制只算同步执行。异步 I/O 等待不计入。数据库异步插入、网络请求的等待时间都不算,只算 CPU 实际处理时间。别看到 3 分钟就慌,先看任务是同步还是异步。Wo
TaskPool 用起来简单,但碰到要长时间占据线程、需要保存句柄状态、或者任务超过 3 分钟的场景,就得请出 Worker 了。Worker 给你一个独立的运行环境,自己管生命周期,自己跟主线程消息通信,自由度更高,代价就是写起来更繁琐。这篇文章把 Worker 的运作机制、创建方式、文件路径规则、生命周期管理和多级 Worker 用法都过一遍。
本文聚焦「一句找图」搜索效果的评估与优化,通过固定图库版本与查询语句,建立可复现的评测体系。引入expectedIds明确预期结果,以严格相关、部分符合等标准量化相关性,结合相似度排序提升结果可解释性。页面状态分离草稿与提交查询,确保结果对应准确;通过请求编号、会话与图库修订号实现回写追踪,保障异步操作一致性。最终实现可验证、可追溯的搜索体验闭环。