HarmonyOS 直播间进去后会有大量用TextDecoder解析array到utf8 string的需求,现在几乎必现ANR

参考示例:

import { flexModelCustomizer, FlexModelTextDecoder, KmpJsonAdapter } from '@live/live_kmp/IndexFlexModel'
import util from '@ohos.util'
import { stringify } from 'json-bigint'
class CustomTextDecoderImpl implements FlexModelTextDecoder {
  private readonly textDecoder = new util.TextDecoder()
  decodeUtf8(byteArray: Int8Array, start: number, end: number): string {
    return this.textDecoder.decodeWithStream(new Uint8Array(byteArray.buffer, start, end - start))
  }
}
flexModelCustomizer.get().customTextDecoder = new CustomTextDecoderImpl()

HarmonyOS
2024-12-25 12:24:15
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

基于目前的现象看,进入到decodewithStream的时候又进行了一次new Uint8Array的操作,导致耗时严重。建议用buffer的接口。buffer.from入参uint8Array,然后tostring就可以解码数据,但是需要接收的typedarray改成uint8Array,而非int8Array,因为两者的取值范围是不一致的。

分享
微博
QQ
微信
回复
2024-12-25 14:07:15
相关问题
HarmonyOS string转Uint8Array
1161浏览 • 1回复 待解决
HarmonyOS string怎么与Uint8Array互转?
2195浏览 • 1回复 待解决
HarmonyOS 直播需求WebRTC
1691浏览 • 1回复 待解决
HarmonyOS直播需求WebRTC?
875浏览 • 0回复 待解决
HarmonyOS Uint8Array转成string后出现乱码
1384浏览 • 1回复 待解决
Uint8Array 如何直接转为String or Json
4097浏览 • 1回复 待解决
Uint8Arraystring之间相互转换
5134浏览 • 1回复 待解决
HarmonyOS 播放专辑一段时间crash
1074浏览 • 1回复 待解决
HarmonyOS 直播需求、rtmp推流
1688浏览 • 1回复 待解决
Uint8Array 在native层去解析提示过期
1149浏览 • 1回复 待解决
json如何在ArkTS中解析Array对象中?
1250浏览 • 1回复 待解决
HarmonyOS hilog打印几十K日志cppCrash
916浏览 • 1回复 待解决
HarmonyOS 中Uint8Array
1197浏览 • 1回复 待解决