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

相关文章

C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解

《C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解》:本文主要介绍C++,C#,Rust,Go,Java,Python,JavaScript性能对比全面... 目录编程语言性能对比、核心优势与最佳使用场景性能对比表格C++C#RustGoJavapythonjav

Spring Boot基于 JWT 优化 Spring Security 无状态登录实战指南

《SpringBoot基于JWT优化SpringSecurity无状态登录实战指南》本文介绍如何使用JWT优化SpringSecurity实现无状态登录,提高接口安全性,并通过实际操作步骤... 目录Spring Boot 实战:基于 JWT 优化 Spring Security 无状态登录一、先搞懂:为什

CPython与PyPy解释器架构的性能测试结果对比

《CPython与PyPy解释器架构的性能测试结果对比》Python解释器的选择对应用程序性能有着决定性影响,CPython以其稳定性和丰富的生态系统著称;而PyPy作为基于JIT(即时编译)技术的替... 目录引言python解释器架构概述CPython架构解析PyPy架构解析架构对比可视化性能基准测试测

springboot+mybatis一对多查询+懒加载实例

《springboot+mybatis一对多查询+懒加载实例》文章介绍了如何在SpringBoot和MyBatis中实现一对多查询的懒加载,通过配置MyBatis的`fetchType`属性,可以全局... 目录springboot+myBATis一对多查询+懒加载parent相关代码child 相关代码懒

Java JAR 启动内存参数配置指南(从基础设置到性能优化)

《JavaJAR启动内存参数配置指南(从基础设置到性能优化)》在启动Java可执行JAR文件时,合理配置JVM内存参数是保障应用稳定性和性能的关键,本文将系统讲解如何通过命令行参数、环境变量等方式... 目录一、核心内存参数详解1.1 堆内存配置1.2 元空间配置(MetASPace)1.3 线程栈配置1.

MyBatis延迟加载与多级缓存全解析

《MyBatis延迟加载与多级缓存全解析》文章介绍MyBatis的延迟加载与多级缓存机制,延迟加载按需加载关联数据提升性能,一级缓存会话级默认开启,二级缓存工厂级支持跨会话共享,增删改操作会清空对应缓... 目录MyBATis延迟加载策略一对多示例一对多示例MyBatis框架的缓存一级缓存二级缓存MyBat

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Java实现复杂查询优化的7个技巧小结

《Java实现复杂查询优化的7个技巧小结》在Java项目中,复杂查询是开发者面临的“硬骨头”,本文将通过7个实战技巧,结合代码示例和性能对比,手把手教你如何让复杂查询变得优雅,大家可以根据需求进行选择... 目录一、复杂查询的痛点:为何你的代码“又臭又长”1.1冗余变量与中间状态1.2重复查询与性能陷阱1.