unity 2019 点击脚本启动不了VS_Unity用Burst compiler提高安卓游戏性能表现

(Burst compiler,(Burst 突发、爆发/ compiler编译器),文中直接采用英文原说法Burst compiler.)


Burst compiler技术可以让 Unity项目开发人员利用 Arm处理器的 Neon指令集,在目标安卓设备上提高性能表现。

Unity 和 Arm 两家公司已经形成了合作伙伴关系,以增强Android生态系统中10亿多款Arm架构驱动的移动设备上手机游戏的开发体验。对于游戏开发者来说,性能表现是至关紧要的。

Arm于2020年5月底宣布了两种新产品,Cortex-A78 及 Cortex-X1,这些硬件的发展受益于 Arm架构下编译器技术的进步。编译器能确保你在开发高性能游戏时,转换和优化(代码)为高效的二进制文件,从而最大限度地利用Arm架构的特性。

关于 Burst

Burst 是一种先进的编译器技术,通过使用“新的面向数据的技术栈(DOTS)”和 Unity Job系统,可以用来加速 Unity项目的性能表现。

Burst 的工作方式是编译 C# 语言的一个子集,也就是高性能 C#(HPC#),通过部署构建在 LLVM编译器框架之上的高级优化,来更为有效地利用设备。

Burst 对于利用应用程序中的隐藏 并行性(parallelism)很有用处。使用 DOTS项目中的 Burst很容易,并且可以在 CPU绑定算法中释放出很大的性能优势。

c2c3bc77ff1daa23f2a24ba67b1c8f75.png

Burst 编译的代码能够更快地计算具有更多的物理帧数,从而得到更好的性能、减少设备过热、更低的电池消耗、表现更多吸引人的内容。

Burst 工作原理

Burst 将 HPC# 代码转换为 LLVM IR,这是 LLVM编译器框架使用的一种中介语言。这允许编译器充分利用 LLVM 对 Arm架构代码生成的支持,从而生成围绕程序数据流优化的高效机器代码。此流程的图表如下所示:

7a526aed375ec992fe025bf91c67e558.png

如何编写 Brust程序

你可以通过 DOTS里 Unity Jobs系统,使用 Burst编译 C# 脚本。记得提前把[BurstCompile]属性加入菜单Job内:

f364588f98550033c9443d6a9a111c7f.png

我们可以使用在“Jobs”菜单中找到的“Burst”检视窗来查看将生成哪些代码。

注意在这个演示中,我们已经禁用了安全检查,并且正在使用的版本是 Burst1.3.3,如下图:

在我们选中的突发检查器里,

0c6727326b800249151350d1a9911a7c.png

选择 ARMV8A_AARCH 64 为 ARMv8-A 启用代码生成:

f47b7921a66f8a84c4aed269313d38ea.png

现在可以看到为我们的 C# 循环生成的 AArch64 代码,包括使用 Neon指令集的核心循环:

bee4b9881e65d61920db56ba7475137d.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值