首页 文章 精选 留言 我的

精选列表

搜索[文件分享],共10042篇文章
优秀的个人博客,低调大师

技术分享连载(八十三)

性能 Q1:我用UWA GOT进行本地性能测试,在CPU的数据分析中发现,某些帧StackTraceUtility耗时特别高,这是什么原因导致的呢? StackTraceUtility.XXX是Unity引擎的Log输出,可能是本身Debug.Log/LogError的调用输出,也可能是使用过程中引擎端出现了Warning/Error等信息而自动输出的。 该问题来自UWA问答社区,如您对该问题仍有疑问,可以转至社区进行进一步交流。 https://answer.uwa4d.com/question/59ed93681b83b8df50804f6a 加载 Q2:我在Profiler中观察性能曲线,发现某一帧AssetBundle加载中,LockPersistentManager耗时比较大。请问这部分能否优化? 这说明当前帧或前几帧中存在较大量的资源在通过LoadAsync来进行加载,其本质是所加载的资源过大所致,对自身资源进行合理优化可降低Loading.LockPersistentManager的开销。另外,将异步加载换成同步加载,LockPersistentManager就不会出现了,但其总加载耗时是没有变化的,因为总加载量没变。 关于主要资源的加载优化,可参考如下链接: Unity加载模块深度解析(纹理篇) Unity加载模块深度解析(网格篇) Unity加载模块深度解析(Shader篇) Unity加载模块深度解析(动画片段篇) UWA 六月直播季 | 6.8 移动游戏加载性能和内存管理全解析 该问题来自UWA问答社区,如您对该问题仍有疑问,可以转至社区进行进一步交流。 https://answer.uwa4d.com/question/59eae0c4e0a5e637724a1572 制作 Q3:我在Unity 5.4.4f1下打出的AssetBundle无法加载,抛出以下错误,但是只是部分无法加载,平台是iOS ,打包参数有以下:DeterministicAssetBundle;DisableWriteTypeTree;ChunkBasedCompression;CollectDependencies;CompleteAssets。 出现这个Log是因为项目的逻辑脚本序列化信息更新了,也就是资源的Typetree变化了。这种情况下,需要重新Build相应的AssetBundle,如果使用之前的AssetBundle,那么就会出现上述Log。 该问题来自UWA问答社区,如您对该问题仍有疑问,可以转至社区进行进一步交流。 https://answer.uwa4d.com/question/59e8aa5fe02a95cc6d0c498a 性能 Q4:我在安卓真机上跑游戏,发现Profiler下的合批数据和PC或者iOS下的不一样,因此不确定Android的合批是否有效。如下图,左边的是Android的,右边的是PC的(iOS和PC基本一致),Android的Render.Mesh明显比PC和iOS的高好多。我用的设备是魅族 mote2 Android版本 - 5.1补上FrameDebug的数据,上下的Mesh数据都是一样的,也没有z-fighting的情况,因为都是间隔地渲的,同样的物体一个一个地渲出来。经过分析,Android上不能设置Graphics Jobs(在Player Settings里面),也是不断打包测试发现这个问题,想了解一下具体是什么原因呢? Graphics Job目前在Android平台上是为Vulkan而设计的,也就是只有支持Vulkan设备的才会真正起作用。按照Unity原厂的说法,该选项在不支持Vulkan的Android设备上应该是没有效果的。 另外,Graphics Job和MultiThread Rendering并不建议同时使用,而且以目前的Android设备来说,建议只开启MultiThread Rendering一项即可。 该问题来自UWA问答社区,如您对该问题仍有疑问,可以转至社区进行进一步交流。 https://answer.uwa4d.com/question/59e4510ce5b24a0754868985 制作 Q5:Unity 5.5.1版本下,Sprite Packer在iOS平台下RGBA PVRTC4打包图集失真非常严重(对单个的Sprite设置PVRTC4是正常的),参照了4.6.7版本是正常的,我想知道为什么呢? 确实可以复现。Unity 5.5 的PVRTC压缩有三档 fast/nomal/best,但都比Unity 4.7下的质量要差。找到一个官方的 issue ,说是 pvrtc 压缩工具(第三方)的Bug。 https://issuetracker.unity3d.com/issues/textures-rgba-compressed-pvrtc-2-slash-4bit-texture-with-compression-quality-set-to-to-best-slash-normal-is-less-detailed-than-fast 有人在这个帖子里提到,在 Windows 下尝试用 4.7 的 pvrtextool.exe 替换了 5.x 的,暂时解决了这个问题,建议也尝试一下。 原文出处:侑虎科技 本文作者:admin 转载请与作者联系,同时请务必标明文章原始出处和原文链接及本声明。

优秀的个人博客,低调大师

领域驱动设计(DDD)技术分享

注:本文为技术讨论会上的内容要点摘录整理的,相关内容仅作参考。 1 “模型”的几个概念 下面这2个名词容易混淆: Module---模块,通常按照功能来划分,比如按照业务功能来划分 Model --模型,它通常出现在下面几个概念中: l MVVM --Model+View+ViewModel l MVP --Model+View+Presenter l MVC --Model+View+Controller 所以常说的Model实际上包含了View Model,Domain Model(简称DM),Entity Model。 PS:上面说的MVVM,MVP,MVC都属于“表现层架构模式”。 2 Entity--实体模型 2.1 概念来源 Entity--实体,其实它是来自于数据库设计中的概念,通常完善的数据库设计过程包含下面3个阶段: 1, 概念模型设计---E-R,抽象层次最高 2, 实体模型设计---Entity 3, 物理模型设计----具体数据库系统上面的表、视图、存储过程设计 2.2 Entity和表架构的关系 2.2.1 映射的种类 Entity映射的种类,可以有 l 表, l 视图, l 存储过程, l 甚至数据库函数。 MS EF 将自定义SQL语句映射成实体类? 2.2.2 自定义SQL语句 1, 不同于视图,不能在视图中设定查询参数, 2, 相当于是存储过程和视图的结合体。 2.2.3 多对多关系 Entity和表等是一个“多对多关系”。 原因? 如果直接映射全表的字段到Entity,相当于是执行 Select * form Table 查询,这种方式有损效率。 2.3 懒人效应 所有的ORM工具都只能作为“工具”,会促使“懒人效应”。 1, 从表反向生成实体类,导致不愿意根据业务需求灵活定义实体类。 2, 没有自定义的实体类,所以每次都使用“全表映射”的实体类。 因此导致我们用ORM框架做的项目查询效率没有手写SQL的项目高。 要解决这个问题,就得看ORM框架是否支持“按需查询” PS:---Linq2Sql,MS EF,PDF.NET 就是这样的框架。 3 “数据”的变化 3.1 “持久化”概念: 数据的存储媒介:内存,磁盘等。由于内存的数据容易丢失,所以要写入磁盘等长久存储媒介,数据的这个处理过程就是持久化。 3.2 在各个模型层面的变化过程: 1,ViewModel--〉数据从DM到视图界面的过程; 2,Entity--〉数据从DM到数据库一个“持久化”过程。 ViewModel《--DM--》Entity PS:有同学说这3个Model相互转换很麻烦,其实可以使用第三方工具来做,比如开源的AutoMapper。 传统三层: UI--〉BLL--〉DAL UI《-BLL〈--DAL 该模式的特点,是高度依赖于数据库设计,没有数据库无法开工。 4 DDD--领域驱动设计: 4.1 领域模型 DDD,着重强调:-领域模型 PS:以我们这次项目为原型做好的领域模型介绍。 4.2 DDD实践的关键步骤: 4.2.1 领域建模 UML是一种建模工具,画草图,文档,讨论组等。。。。 UML强调的主要功能是“沟通”,把UML工具作为沟通的重要工具。 4.2.2 聚合根 --领域下的所有的对象都从这个根对象衍生出来,那这个对象就是这个领域下面的聚合根 4.3 DDD分层 常见的方式按照约定,分为: l Presentation Layer--表现层, l Domain Layer--领域层, l Repository Layer--仓储层 PS:Repository Layer不同于三层架构的DAL,其中最关键的就是“驱动方向”不同,在DDD中,是Domain Layer需要什麽,Repository Layer提供什麽;而在DAL中相反,不管BLL是否需要,先提供一堆DAL方法再说,没有“领域”的需求。 4.4 领域驱动开发模式的开发过程 1、分析业务需求。 2、设计领域对象模型 3、测试领域对象模型 4、设计业务处理类 5、设计Entity和ViewModel 6、测试业务处理类 7、设计表架构 8、开发用户界面 5 数据库查询最有损效率的地方 l 全表查询; l 连表查询; l 不合理的使用索引。 优化方式: 1, 避免全表查询; 2, 将常见的表数据缓存,化解连表查询为单表查询。 很多项目都是CRUD(增,删,改,查)。 6 附录 6.1 参考资源: UML类图关系大全 http://www.cnblogs.com/riky/archive/2007/04/07/704298.html “领域驱动开发”实例之旅(1)--不一样的开发模式 http://www.cnblogs.com/bluedoctor/archive/2011/06/24/2088392.html 使用View Model从表现层分离领域模型 http://www.cnblogs.com/shanyou/archive/2010/04/03/1703501.html 本文转自深蓝医生博客园博客,原文链接:http://www.cnblogs.com/bluedoctor/archive/2012/12/07/2807036.html,如需转载请自行联系原作者

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册