当前位置: 首页 > article >正文

UniVue大版本更新:UniVue2.0.0-preview

大版本发布说明

       距离上次更新好像已经过去很久了,最近太忙了没时间维护新版本,也是自己在使用的过程中发现了很多问题也有了更多的灵感,由于和之前的版本区别太大,决定重新开一个大版本。这个UniVue2之后的版本追求是性能,和之前的版本不同的是,这个版本之后将完全不使用反射,甚至连GetType()都不会使用,同时功能也是更加强大,灵活。由于版本更新改动大,同时还有一些功能还未完善,目前只出一个预览版,正式版本中对Tween模块和本地化模块进行功能完善和性能更强。会使用JobSystem对Tween模块进行优化。

GitHub仓库

发布版本仓库:https://github.com/Avalon712/UniVue

开发版本仓库:https://github.com/Avalon712/UniVue2-Develop

UniVue拓展框架UniVue源生成器仓库:https://github.com/Avalon712/UniVue-SourceGenerator

版本改动

  • 优化整个View层的设计,不再提供任何默认的IView接口实现,实现更多灵活的功能;
  • 优化Model层的设计,源生成器将默认为实现IBindableModel接口的类提供一个BindableTypeInfo对象描述其绑定信息;
  • 优化整个Event系统,所有的反射调用全部移除,全部采用直接调用,事件调用性能消耗成本几乎可以不计;
  • UniVue所有运行时模块都不再使用任何反射,性能全面提高;
  • 重构LoopList、LoopGrid组件,同时只保留了这两个组件,之前的其它组件全部删除不再使用;
  • 优化规则引擎,通过使用内部实现ArrayPool和C#的Span减少数组对象的内存分布,同时对内部三大规则EventRule、ModelRule、RouteRule优化,字符串GC得到大幅度降低;
  • ViewLevel新增Unmanaged级别的视图,此类的视图的打开关闭不受其它级别视图的影响,同时不会被压入视图堆栈;
  • 重写运行时调式器,减少了95%以上的反射使用;
  • 暂时移除I18n模块,在正式版本中发布此功能;
  • 移除Input模块,考虑到Unity的InputSystem功能更加全面,UniVue将不再提供任何输入模块;
  • 对内部的频繁使用数组对象(List)全面提高开启缓存功能,默认开启缓存;
  • 命名规则只支持大写开头下划线分隔+UI后缀的方式,不再提高任何其它命名规则(过去提供的多种命名风格维护起来太困难,每修改新增一条规则就要有8种不同的实现,直接废弃了,UniVue2正式版中将会提供能够覆盖默认规则的实现接口);
  • 废弃AtomModel和GroupModel;

 


http://www.kler.cn/a/330015.html

相关文章:

  • 散户持股增厚工具:智能T0算法交易
  • 基于 MONAI 的 3D 图像分割任务2(Brain Tumour 和 SwinUNETR 训练)
  • html 图片转svg 并使用svg路径来裁剪html元素
  • 【MySql】实验十六 综合练习:图书管理系统数据库结构
  • 系统思考—跳出症状看全局
  • 嘴尚绝卤味独特的口感
  • 10月2日笔记(内网资源探测篇)
  • 前端的全栈混合之路Meteor篇:运行在浏览器端的数据库-MiniMongo介绍及其前后端数据实时同步示例
  • 矩阵系统源码搭建,OEM贴牌,源头技术开发
  • 前端的全栈混合之路Meteor篇:3.0新版本介绍
  • vscode使用yarn 启动vue项目记录
  • 一个好用的服务治理组件Sentinel
  • 利士策分享,行走•悟世•惜福: 旅行真谛
  • nginx常用的性能优化
  • Custom C++ and CUDA Extensions - PyTorch
  • 外部引入的 JavaScript 放置位置
  • SpringBoot 源码解读与自动装配原理结合Actuator讲解
  • 汽车发动机系统(ems)详细解析
  • 01.useStateWithLabel
  • Mybatis-Flex使用
  • MybatisPlus代码生成器的使用
  • linux kernel Gdb在线调试
  • 【论文笔记】Visual Instruction Tuning
  • 操作系统_名词_文件下载_反弹SHELL_防火墙绕过
  • Junit和枚举ENUM
  • CentOS 6文件系统