GalForUnity加载时性能优化

2024-01-25 01:08

本文主要是介绍GalForUnity加载时性能优化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

加载时性能优化

针对GfuGraph加载的优化

GalForUnity通过GfuInstanceID来访问对象,内存中的对象通常保存在字典当中访问十分迅速。

但是对于保存在硬盘当中的对象,直接保存在字典里是不切实际的。

GalForUnity通过InstanceIDStorage来保存储存在硬盘中的对象。

在这里插入图片描述

InstanceIDStorage本质是一个保存了GfuInstanceID和对象Path的列表。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mhnBa9sx-1637681727685)(images/image-20211123202811642.png)]

运行时仅会加载一个占用内存较小的InstanceIDStorage。通过InstanceIDStorage能够快速定位指定对象在硬盘中的位置,进行运行时加载,大大减少了程序寻找对象的开销。

请不要担心列表的查询速度,字段仅是以列表方式序列化保存,运行时会被还原成字典,依旧能够保证O(1)的访问速度。

点击初始化ID寄存器后,InstanceIDStorage会查找Resources目录下的所有包含GfuInstanceID的对象并且自动附加。

注意:运行时仅能够加载Resources(资源目录)目录下的文件!编辑器模式仅能够加载Assets(即项目目录)目录下的文件具体原因请参阅Unity打包过程。

注意:GameSystem被附加的时候会自动创建InstanceIDStorage,并附加该对象。如非必要,请不要尝试修改该对象,因为GfuInstanceID系统需要改对象判断内存或硬盘中是否存在相同InstanceID的对象,随意修改会导致InstanceID误判。容易导致Graph系统丢失对对象的引用。

注意:如果您在资源中创建了图并且引用了一个场景对象。当您打开新场景时图会丢失引用,原因是原先场景中的对象已经被全部销毁了。此时前往不能保存您原先的场景图,因为这会真的导致丢失引用。当您打开原先场景时,您对这个场景的对象引用会还原。这意味着一个资源图只能适用于一个场景

这篇关于GalForUnity加载时性能优化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/641624

相关文章

Zabbix在MySQL性能监控方面的运用及最佳实践记录

《Zabbix在MySQL性能监控方面的运用及最佳实践记录》Zabbix通过自定义脚本和内置模板监控MySQL核心指标(连接、查询、资源、复制),支持自动发现多实例及告警通知,结合可视化仪表盘,可有效... 目录一、核心监控指标及配置1. 关键监控指标示例2. 配置方法二、自动发现与多实例管理1. 实践步骤

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

Android ClassLoader加载机制详解

《AndroidClassLoader加载机制详解》Android的ClassLoader负责加载.dex文件,基于双亲委派模型,支持热修复和插件化,需注意类冲突、内存泄漏和兼容性问题,本文给大家介... 目录一、ClassLoader概述1.1 类加载的基本概念1.2 android与Java Class

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos