Unity加速编译小技巧

这篇具有很好参考价值的文章主要介绍了Unity加速编译小技巧。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今日豆知识——加速编译小技巧 (qq.com)

在Unity开发过程中,我们会经常修改脚本代码。而每次修改脚本代码之后,Unity都需要重新编译脚本。这个过程在一些大型项目里面,是比较消耗时间的。那么有没有什么方法可以加快这个过程呢?

我们需要知道,在每次返回到Editor的时候,Unity都编译了哪些东西。

Unity工程中所有生成的编译文件都会放到Library\ScriptAssemblies 这个文件夹中。比如大家熟悉的Assembly-CSharp.dll。这个dll就是我们日常写的脚本最终的归宿。

可想而知,如果所有的文件最终都编译到这一个文件中,那么稍有“风吹草动”就会引起天崩地裂般的大范围重新编译。所以,我们自然会考虑到,将这个文件进行分拆,将不经常修改的代码放到一个单独的地方,从而减少不必要的文件编译。

那么对于dll拆分我们有哪些方式呢?

1.基于Assembly Definition。

Assembly Definition是Unity官方提供的进行代码拆分的最佳实践。首先将相应的模块代码放入到同一个文件夹,然后在这个文件夹下创建一个Assembly Definition。

Unity加速编译小技巧

我们对这个Assembly Definition进行一些设置:

Unity加速编译小技巧

从上图看出,我们指定当前代码是否使用unsafe code,是否自动解析其依赖引用关系等。其中比较重要的是Assembly Definition References,这个选项可以指定当前dll所依赖的其他dll。

这个比较常见的使用情况,一个Editor所使用的dll会依赖相应的Runtime dll。另外一个比较重要的,是Platform选项。这个选项可以指明,当前这个dll需要被应用到哪些平台上,从而进行不同平台的区分。

当我们创建好一个Assembly Definition之后,我们在Library\ScriptAssemblies中会发现对应的dll:

Unity加速编译小技巧

当我们没有更改Assembly Definition所覆盖的代码时,这部分代码就不会再去参与后续的编译。

除了Assembly Definition这种官方提供的最佳实践的方式之外,其实Unity还有隐藏的小技巧。

2.在Unity中,有几个比较特殊的文件夹也可以实现类似效果。

他们是:

Plugins,Pro Standard Assets,Standard Assets。

这三个文件夹会单独产生一个dll:Assembly-CSharp-firstpass.dll。我们可以利用这一特性,也可以实现类似的效果。比如我们将一些不常修改的代码,放入对应的文件夹,即可将他们单独放入一个dll:

Unity加速编译小技巧

除了上述的代码分拆方法之外,在编码的过程中也有一些地方会影响到最终出包的速度,比如以下写法:

Unity加速编译小技巧

模板是我们经常会用到的一种语法糖,它可以帮我们快速完成一些特定的编码工作。然而,这个语法糖不是免费的。在我们编译到IL2CPP之后,我们会发现,这类模板函数会根据参数的不同排列组合,展开为一个个独立的函数。

当我们有大量的模板展开之后,必然会使我们的代码文件快速膨胀,从而增加IL2CPP最终的编译速度。

所以,大家在使用模板的时候,一定要留心其参数的排列组合数量,控制好整体的代码大小。文章来源地址https://www.toymoban.com/news/detail-438045.html

到了这里,关于Unity加速编译小技巧的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • pytorch 今日小知识2——F.avg_pool2d、clamp

    这个函数中的F.avg_pool2d 不是很理解就查了一下 ipts.clamp(1.0e-6) : 这个操作将 ipts 中的每个元素限制在 [1.0e-6, +inf) 的范围内。也就是说,任何小于 1.0e-6 (一个非常小的正数)的值都会被替换为 1.0e-6 ,而大于或等于 1.0e-6 的值则保持不变。这样做通常是为了避免数值不稳定问题

    2024年04月22日
    浏览(28)
  • Python优化技巧:Cython加速实战

    Python 作为一门高级语言具有易学、易用的特点,被广泛应用于数据处理、网站编程等领域。但与 C 和 C++ 等编译型语言相比Python 在代码的执行效率方面存在天生的不足。这使得在处理大规模数据和高性能计算等领域,Python 相对于其他语言非常劣势。造成 Python 语言性能瓶颈问

    2024年02月05日
    浏览(38)
  • 深度学习技巧应用32-在YOLOv5模型上使用TensorRT进行加速的应用技巧

    大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用32-在YOLOv5模型上使用TensorRT进行加速的应用技巧,TensorRT是NVIDIA公司提供的一个深度学习推理(inference)优化器和运行时库。它专门为生产环境下的高性能深度学习推理提供优化支持。TensorRT可以加速深度学习模型在

    2024年02月02日
    浏览(44)
  • 支持硬件加速的opencv编译

    为了降低cpu的使用率提升系统的接入能力,需要将编解码模块移至GPU处理,opencv默认的发行版中不支持GPU加速,所以需要重新编译opencv使其支持GPU硬件加速。 本文的读者须具备一定的Linux使用经验,如常规软件安装等操作不在本文档中描述。 cuda:统一计算设备架构(Compute

    2024年02月10日
    浏览(42)
  • TVM编译器推理加速模型

    TVM是一个开源的端到端优化机器学习编译器,目的是加速模型在任意硬件上的计算。 一般情况下如果实在intel的cpu上面部署可能用OpenVino,N卡上面肯定TensorRT,arm架构机器可能会用Ncnn等,意味着要针对每个框架做部署,这里面涉及到的转换非常复杂,部署过的就知道有多少坑

    2024年01月19日
    浏览(52)
  • 助你加速开发效率!告别IDEA卡顿困扰的性能优化技巧

    在现代软件开发中,IDE(集成开发环境)是一个必不可少的工具。IntelliJ IDEA是一个广受欢迎的IDE,但有时候IDE的性能可能会受到影响,导致开发人员的工作效率降低。本文将介绍一些可以提高IDE性能的技巧,帮助开发人员消除卡顿困扰。 优化IDE的配置 在IDEA中,可以通过修改

    2024年01月25日
    浏览(58)
  • V-Ray怎么快速渲染_渲染加速小技巧

    很多小伙伴在使用V-Ray渲染器的时候都想要更加快速的出图,今天Renderbus瑞云渲染就给大家分享一下V-Ray渲染加速的小技巧。 在了解渲染加速技巧之前,我们首先要了解渲染制作主要受两个因素影响—— 图像质量和渲染时间 ,高图像质量是以长渲染时间为代价的,反之亦然,

    2024年02月03日
    浏览(29)
  • 从源码编译 tensorFlow ,启用CPU 指令加速

    问题:AVX AVX2 AVX_VNNI FMA 是什么? AVX、AVX2、AVX_VNNI 和 FMA 都是针对 Intel CPU 的特殊指令集(instruction set),用于加速数值计算和向量化操作。这些指令集提供了高级别的并行性和向量化支持,可以在适用的硬件上加快特定计算任务的速度。 AVX (Advanced Vector Extensions):AVX 是 Intel

    2024年02月14日
    浏览(30)
  • Vivado增量编译:加速FPGA设计实现的利器

    随着FPGA设计的复杂度不断提高,设计人员需要选择更为高效的设计流程来保证开发效率和减少开发成本。其中,Vivado增量编译是一种非常重要的设计流程。本文将介绍Vivado增量编译的基本概念、优点、使用方法以及注意事项。 通过阅读本文可以了解: 增量编译是什么?有什

    2024年02月09日
    浏览(53)
  • ffmpeg学习 源代码编译、英伟达硬件加速

    使用cpu进行软编解码时,cpu效率低并且占用高。使用硬件加速,能够明显降低CPU的占用,参看博客 ffmpeg学习(16)AVDevice使用。 这里以使用英伟达gpu进行h264编解码加速为例说明,其他平台类似。 在windows平台直接下载官方的预编译ffmpeg、lib开发包,都已经支持了英伟达显卡硬

    2023年04月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包