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

相关文章

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

JVisualVM之Java性能监控与调优利器详解

《JVisualVM之Java性能监控与调优利器详解》本文将详细介绍JVisualVM的使用方法,并结合实际案例展示如何利用它进行性能调优,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录1. JVisualVM简介2. JVisualVM的安装与启动2.1 启动JVisualVM2

Java使用MethodHandle来替代反射,提高性能问题

《Java使用MethodHandle来替代反射,提高性能问题》:本文主要介绍Java使用MethodHandle来替代反射,提高性能问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录一、认识MethodHandle1、简介2、使用方式3、与反射的区别二、示例1、基本使用2、(重要)

使用Python获取JS加载的数据的多种实现方法

《使用Python获取JS加载的数据的多种实现方法》在当今的互联网时代,网页数据的动态加载已经成为一种常见的技术手段,许多现代网站通过JavaScript(JS)动态加载内容,这使得传统的静态网页爬取... 目录引言一、动态 网页与js加载数据的原理二、python爬取JS加载数据的方法(一)分析网络请求1

IDEA下"File is read-only"可能原因分析及"找不到或无法加载主类"的问题

《IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题》:本文主要介绍IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题,具有很好的参... 目录1.File is read-only”可能原因2.“找不到或无法加载主类”问题的解决总结1.File

SpringBoot中HTTP连接池的配置与优化

《SpringBoot中HTTP连接池的配置与优化》这篇文章主要为大家详细介绍了SpringBoot中HTTP连接池的配置与优化的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、HTTP连接池的核心价值二、Spring Boot集成方案方案1:Apache HttpCl