HarmonyOS:ArkTs高性能编程细节点
·
高性能编程细节点
除了我们自己要在上层做多线程之外,我们写代码的时候也要注意以下几点:
- 能用 const 尽量用 const,let毕竟还需要维护它变没变, 但是const不需要
- 对于变量,尽量少写什么全局的变量,因为你一旦写变量,那就意味着以后系统都得维护,而你写的又是全局的变量,那得从海量的全局数据搜索,这就变得比较浪费时间。最好的写法就是
- 在逻辑中如果遇见这样的变量,尽量少在循环里高频访问。因为访问一次找一次比较耗
- 尽量减少全局的变量, 使其变成非全局。这样可以顺着访问域找,找的稍微快一些
- 对于 number 这类的,如果你的初始化值是 1.0 其实他的内部是按照小数来处理的,如果你是 1 则是按照整数进行处理。这个总情况下,建议利用这个特点在最初的时候进行初始化。控制这个 number 的类型。这个比 number 处理为
number | null | undefined而言是比较高效的 - 对于 import 而言我们的高性能研发有三点
- 你 import 的时候尽量不要绕来绕去搞什么间接引入,用什么就写什么,别写什么*,比如
import {*} from '@ohos/arkui'这类的代码不要有,人家一加载就是全部,很吃力的 - 你的 import 语句实际上有个高端的用法:import lazy 这个是等到你的代码的类用到的时候才进行你代码的 load。这个尤其是在我们加载 SDK 的时候,接入的多了就会考虑前期懒加载。这个方式可以进行懒加载。
- 代码动态懒加载。import 也是一个系统函数,这个方式更加灵活!
- 你 import 的时候尽量不要绕来绕去搞什么间接引入,用什么就写什么,别写什么*,比如
- 对于你的 Array,ArkTS 内部有个优化,就是如果内存超过 1024KB,那么它的内部转成稀疏数组。这个稀疏数组再怎么优化,实际上寻址速度赶不上我们在连续的内存+偏移量来找数据。如果你的数据本身就没有太大, 切记不要在开始初始化的时候就把人家初始化很大。这样下来你很可能操作的是一个稀疏数组。
- 还有就是如果你的需求非要如此的话,选择 TypeaArray! 这样也是可以的,如
int8Array这类的。这个底层实现与 ArrayBuffer 是一样的。也是靠偏移量。
- 还有就是如果你的需求非要如此的话,选择 TypeaArray! 这样也是可以的,如
- Record 这种东西,性能比 Map 低,自己在写代码的时候可以Map 优先。尤其是你存的数据很多的情况下,更应该用 Map。起码 Map 查找的快!
更多推荐


所有评论(0)