引擎模块自身占用

news/2024/10/18 10:30:29

引擎自身中存在内存开销的部分纷繁复杂,可以说是由巨量的“微小”内存所累积起来的,比如GameObject及其各种Component(最大量的Component应该算是Transform了)、ParticleSystem、MonoScript以及各种各样的模块Manager(SceneManager、CanvasManager、PersistentManager等)…

一般情况下,上面所指出的引擎各组成部分的内存开销均比较小,真正占据较大内存开销的是这两处:WebStream 和 SerializedFile。其绝大部分的内存分配则是由AssetBundle加载资源所致。简单言之,当您使用new WWW或CreateFromMemory来加载AssetBundle时,Unity引擎会加载原始数据到内存中并对其进行解压,而WebStream的大小则是AssetBundle原始文件大小 + 解压后的数据大小 + DecompressionBuffer(0.5MB)。同时,由于Unity 5.3版本之前的AssetBundle文件为LZMA压缩,其压缩比类似于Zip(20%-25%),所以对于一个1MB的原始AssetBundle文件,其加载后WebStream的大小则可能是5~6MB,因此,当项目中存在通过new WWW加载多个AssetBundle文件,且AssetBundle又无法及时释放时,WebStream的内存可能会很大,这是研发团队需要时刻关注的。

对于SerializedFile,则是当你使用LoadFromCacheOrDownload、CreateFromFile或new WWW本地AssetBundle文件时产生的序列化文件。

对于WebStream和SerializedFile,你需要关注以下两点:

  • 是否存在AssetBundle没有被清理干净的情况。开发团队可以通过Unity Profiler直接查看其使用具体的使用情况,并确定Take Sample时AssetBundle的存在是否合理;
  • 对于占用WebStream较大的AssetBundle文件(如UI Atlas相关的AssetBundle文件等),建议使用LoadFromCacheOrDownLoad或CreateFromFile来进行替换,即将解压后的AssetBundle数据存储于本地Cache中进行使用。这种做法非常适合于内存特别吃紧的项目,即通过本地的磁盘空间来换取内存空间。
    注意:关于AssetBundle的详细管理机制,建议查看AssetBundle技术文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/72966.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

怎样修改网站ftp密码?

修改网站FTP密码的方法取决于你使用的FTP服务提供商或Web主机控制面板。以下是一些常见情况下的步骤:通过cPanel修改FTP密码:登录到你的cPanel账户。 在文件部分找到“FTP账户”选项并点击。 选择你想要修改密码的FTP账户。 点击“更改密码”按钮。 输入新密码,并确认。 点击…

CMDB平台(基础篇):CMDB的概念以及现状

CMDB:IT界的“超级大脑”,现状却让人哭笑不得 在IT界,有一个神秘而强大的存在,它被称为CMDB——资产配置管理。听起来就像是《复仇者联盟》里的超级英雄,但实际上,它更像是IT界的“超级大脑”,默默记录着每一个IT组件的“身世”和“关系网”。 那CMDB到底是什么呢?下面…

网站如何修改后台代码?模板网站怎么修改?

修改网站后台代码通常涉及以下几个步骤,具体操作可能会因网站的技术栈和架构而有所不同。以下是一般流程: 1. 备份现有代码重要:在进行任何修改之前,务必备份现有的代码和数据库。这可以在出现问题时帮助你快速恢复。2. 确定修改需求明确你需要对后台代码进行哪些具体的修改…

【设计模式】适配器模式

设计模式【设计模式】工厂方法模式 【设计模式】抽象工厂模式 【设计模式】单例模式 【设计模式】策略模式 【设计模式】观察者模式 【设计模式】装饰模式 【设计模式】适配器模式 一、介绍 适配器模式是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作。 适配器可担…

如何修改公司网站文案?网站修改后台资料?

修改公司网站文案时,可以遵循以下几个步骤来确保内容既专业又吸引人:明确目标:确定修改文案的目的。是为了提高转化率、增强品牌形象还是更新产品信息? 明确目标受众是谁,了解他们的需求和偏好。收集反馈:从客户、同事或行业专家那里收集关于现有文案的反馈。 分析网站访…

【Java】若以框架(ruoyi-master)——9.shiro安全框架

若依采用了Apache Shiro是Java的一个安全框架。Shiro可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等。其不仅可以用在 JavaSE环境,也可以用在 JavaEE 环境。 之前,为了了解shiro,我做了一些入门: 【shiro】1.快速入门 【shiro】2.认证、授权、源码分析 …

Flutter进阶(2):国际化开发

在全球化趋势下,应用支持多语言是非常重要的。Flutter 提供了强大的国际化(i18n)支持,可以通过 flutter_localizations 与 gen-l10n 工具生成的本地化类来实现不同区域和语言的适配。本篇博客将介绍如何在 Flutter 项目中使用 flutter_localizations,并实现多语言支持与动…

网站后台如何修改网页?公司网站修改怎么做?

要修改网站后台中的网页,通常涉及以下几个步骤:登录后台管理系统:使用管理员账号和密码登录到网站的后台管理系统。导航至页面管理:在后台管理系统中找到“页面管理”、“内容管理”或类似名称的模块。选择要编辑的页面:在页面列表中找到你需要修改的页面,点击编辑按钮。…