mirror of
https://github.com/smallmain/cocos-enhance-kit.git
synced 2024-12-26 03:38:29 +00:00
更新多线程文档
This commit is contained in:
parent
07e4db41a3
commit
a066f2edc6
12
README.md
12
README.md
@ -98,7 +98,17 @@ Label 一直是项目优化的最难点,因为它完全不能和其它的渲
|
|||||||
|
|
||||||
### 多线程支持
|
### 多线程支持
|
||||||
|
|
||||||
现在,引擎的部分系统增加了多线程支持,启用后可以释放其对主线程的占用,减少卡顿现象。
|
现在,以下引擎的部分增加了多线程支持:
|
||||||
|
|
||||||
|
- 资源管线(下载与缓存部分)
|
||||||
|
- 音频系统
|
||||||
|
|
||||||
|
启用后可以释放其对主线程的占用,减少卡顿现象。
|
||||||
|
|
||||||
|
并且在微信小游戏平台下还有以下改进:
|
||||||
|
|
||||||
|
- 默认启用网络接口和音频接口的高性能模式
|
||||||
|
- 网络接口支持 HTTP/2、HTTP/3(QUIC) 协议
|
||||||
|
|
||||||
## 演示
|
## 演示
|
||||||
|
|
||||||
|
@ -100,6 +100,16 @@ Spine 组件现在不仅可以参与动态合图,还能与其他渲染组件
|
|||||||
|
|
||||||
## 启用多线程支持
|
## 启用多线程支持
|
||||||
|
|
||||||
社区版为引擎的部分系统增加了多线程支持,启用后可以释放其对主线程的占用,减少卡顿现象。
|
现在,以下引擎的部分增加了多线程支持:
|
||||||
|
|
||||||
|
- 资源管线(下载与缓存部分)
|
||||||
|
- 音频系统
|
||||||
|
|
||||||
|
启用后可以释放其对主线程的占用,减少卡顿现象。
|
||||||
|
|
||||||
|
并且在微信小游戏平台下还有以下改进:
|
||||||
|
|
||||||
|
- 默认启用网络接口和音频接口的高性能模式
|
||||||
|
- 网络接口支持 HTTP/2、HTTP/3(QUIC) 协议
|
||||||
|
|
||||||
详情请阅读文档:[多线程支持](../user-guide/multithread/thread-intro)。
|
详情请阅读文档:[多线程支持](../user-guide/multithread/thread-intro)。
|
||||||
|
@ -79,3 +79,14 @@ cc.macro.ENABLE_NATIVE_TTF_RENDERER = false;
|
|||||||
|
|
||||||
- `getTemp` 方法被 `getTempAsync` 方法代替,请检查你项目中相关的用法。
|
- `getTemp` 方法被 `getTempAsync` 方法代替,请检查你项目中相关的用法。
|
||||||
- 启用多线程之后,会使用多线程版的缓存管理器,如果你的项目访问了未暴露的内部属性,请检查相关的用法。
|
- 启用多线程之后,会使用多线程版的缓存管理器,如果你的项目访问了未暴露的内部属性,请检查相关的用法。
|
||||||
|
|
||||||
|
### 音频系统
|
||||||
|
|
||||||
|
当你启用多线程驱动音频系统时,以下音频属性是定时更新而不是即时更新的:
|
||||||
|
|
||||||
|
- `duration`
|
||||||
|
- `currentTime`
|
||||||
|
|
||||||
|
这一般不会引起什么问题,无需特别关注。
|
||||||
|
|
||||||
|
如果你正在操作引擎内部维护的平台音频实例的话,需要注意现在的平台音频实例每个事件只支持有一个监听者(普通用户无需关注,AudioSource、CCAudio 等面向用户的 API 依然支持多个监听者)。
|
||||||
|
@ -96,7 +96,17 @@ Label 一直是项目优化的最难点,因为它完全不能和其它的渲
|
|||||||
|
|
||||||
### 多线程支持
|
### 多线程支持
|
||||||
|
|
||||||
现在,引擎的部分系统增加了多线程支持,启用后可以释放其对主线程的占用,减少卡顿现象。
|
现在,以下引擎的部分增加了多线程支持:
|
||||||
|
|
||||||
|
- 资源管线(下载与缓存部分)
|
||||||
|
- 音频系统
|
||||||
|
|
||||||
|
启用后可以释放其对主线程的占用,减少卡顿现象。
|
||||||
|
|
||||||
|
并且在微信小游戏平台下还有以下改进:
|
||||||
|
|
||||||
|
- 默认启用网络接口和音频接口的高性能模式
|
||||||
|
- 网络接口支持 HTTP/2、HTTP/3(QUIC) 协议
|
||||||
|
|
||||||
## 使用方法
|
## 使用方法
|
||||||
|
|
||||||
|
BIN
docs/docs/user-guide/multithread/assets/tas-a.png
Normal file
BIN
docs/docs/user-guide/multithread/assets/tas-a.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 111 KiB |
BIN
docs/docs/user-guide/multithread/assets/tas-a2.png
Normal file
BIN
docs/docs/user-guide/multithread/assets/tas-a2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 110 KiB |
@ -15,4 +15,4 @@ description: "在多线程中执行资源管线。"
|
|||||||
|
|
||||||
这是在 Android 设备上,对游戏帧耗时的分析图,可以看到红框部分的消耗消失了,降低了每帧的耗时。
|
这是在 Android 设备上,对游戏帧耗时的分析图,可以看到红框部分的消耗消失了,降低了每帧的耗时。
|
||||||
|
|
||||||
在启用后,会有一些接口与之前不一样,请前往 [破坏性变更](../../breaking-change#资源管线) 查看详情。
|
在启用资源管线的多线程支持后,会有一些接口差异,请前往 [破坏性变更](../../breaking-change#资源管线) 查看详情。
|
||||||
|
@ -7,10 +7,26 @@ description: "在多线程中操作音频。"
|
|||||||
|
|
||||||
依次点击编辑器的菜单项 **项目 - 社区版设置**,然后勾选 **多线程驱动音频系统**,即可启用这一特性。
|
依次点击编辑器的菜单项 **项目 - 社区版设置**,然后勾选 **多线程驱动音频系统**,即可启用这一特性。
|
||||||
|
|
||||||
启用后,音频的所有操作都会在 Worker 线程中执行,完全释放对主线程的占用。
|
启用后,针对音频的所有操作都会在 Worker 线程中执行,完全释放对主线程的占用。
|
||||||
|
|
||||||
:::danger 注意
|
下面是在 Android 设备上,在开启前对游戏帧耗时的分析图:
|
||||||
|
|
||||||
该特性正在开发中,请勿启用。
|
![analysis](./assets/tas-a.png)
|
||||||
|
|
||||||
:::
|
下面是开启多线程支持后:
|
||||||
|
|
||||||
|
![analysis-2](./assets/tas-a2.png)
|
||||||
|
|
||||||
|
可以看到每次播放音频的耗时从 7.5ms 降低至 0.6ms。
|
||||||
|
|
||||||
|
## 调整属性同步间隔
|
||||||
|
|
||||||
|
启用多线程支持后,音频实例运行在 Worker 线程中,所以音频属性是定时同步更新到主线程的。
|
||||||
|
|
||||||
|
默认情况下,间隔时间为 `500` 毫秒,其实大部分项目都不会读取音频属性,而是直接监听播放开始、播放结束等音频事件(无论如何,事件是立即发出的)。
|
||||||
|
|
||||||
|
所以我们可以适当地降低同步频率,优化项目的性能。
|
||||||
|
|
||||||
|
依次点击编辑器的菜单项 **项目 - 社区版设置**,然后修改 **属性同步间隔** 的值即可。
|
||||||
|
|
||||||
|
在启用音频系统的多线程支持后,会有一些接口差异,请前往 [破坏性变更](../../breaking-change#音频系统) 查看详情。
|
||||||
|
@ -7,6 +7,11 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
|
|||||||
|
|
||||||
以下所有多线程特性暂时仅适用于微信小游戏平台。
|
以下所有多线程特性暂时仅适用于微信小游戏平台。
|
||||||
|
|
||||||
|
并且在微信小游戏平台下还有以下改进:
|
||||||
|
|
||||||
|
- 默认启用网络接口和音频接口的高性能模式
|
||||||
|
- 网络接口支持 HTTP/2、HTTP/3(QUIC) 协议
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
社区版为引擎的部分系统增加了多线程支持,启用后可以释放其对主线程的占用,减少卡顿现象。
|
社区版为引擎的部分系统增加了多线程支持,启用后可以释放其对主线程的占用,减少卡顿现象。
|
||||||
|
Loading…
Reference in New Issue
Block a user