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

wordpress建站做客户端关于电子工程的学术论坛

wordpress建站做客户端,关于电子工程的学术论坛,wordpress 遍历用户,东莞网站营销推广公司Unity 从零开始的框架搭建1-2 事件的发布-订阅-取消的小优化及调用对象方法总结[半干货]-CSDN博客 本人水平有限 如有不足还请斧正#xff0c;该文章专栏是向QFrameWork作者凉鞋老师学习总结得来#xff0c;吃水不忘打井人#xff0c;不胜感激 关于此模式我曾实现过#…Unity 从零开始的框架搭建1-2 事件的发布-订阅-取消的小优化及调用对象方法总结[半干货]-CSDN博客 本人水平有限 如有不足还请斧正该文章专栏是向QFrameWork作者凉鞋老师学习总结得来吃水不忘打井人不胜感激   关于此模式我曾实现过但是我看了凉鞋老师的课后有了一些思考C# x Unity 从玩家控制类去分析命令模式该如何使用_unity c# 命令模式-CSDN博客 0.场景引入  就比如场景中有一些敌人 有一些敌人被点击到了就消失有些就随机移动 引入ICommand public interface ICommand {public void Execute(); }实现Icommand using UnityEngine;public class Enemy : MonoBehaviour {private ICommand _moveCommand;private ICommand _destroyCommand;void Start() {_moveCommand new MoveCommand(this);_destroyCommand new DestroyCommand(this);}// 被点到就消失public void OnMouseDown() {if(this.CompareTag(EnemyR))_moveCommand.Execute();else_destroyCommand.Execute();} } public struct MoveCommand : ICommand {private Enemy _enemy;public MoveCommand(Enemy enemy) {_enemy enemy;}public void Execute() {float x Random.Range(-5, 5);float z Random.Range(-5, 5);_enemy.transform.position new Vector3(x, 0, z);} }public struct DestroyCommand : ICommand {private Enemy _enemy;public DestroyCommand(Enemy enemy) {_enemy enemy;}public void Execute() {Object.Destroy(_enemy.gameObject);} } 1.ICommand类做到了什么 这可能就要扯到MVC了,你一定要搞清楚M和C的区别 M做任务的 C控制的下命令的 所以--------------------------------------------------------------------------------------------------------------------------- 没有使用命令模式时 •    模型ModelEnemy类包含了移动和销毁的逻辑 •    视图ViewUnity中的3D物体敌人 •    控制器ControllerEnemy类中的OnMouseDown方法包含了与用户交互的代码 使用命令模式后 •    模型Model具体的命令类例如MoveCommand和DestroyCommand •    视图ViewUnity中的3D物体敌人 •    控制器ControllerEnemy类中的OnMouseDown方法负责调用命令 --------------------------------------------------------------------------------------------------------------------------- 2.每次执行都去new会不会造成性能浪费 我是说在这个场景之中不得不去“new”对象 void Update() {if (Input.GetMouseButtonDown(0)) {if (this.CompareTag(EnemyR)) {ICommand moveCommand new MoveCommand(this);moveCommand.Execute();} else {ICommand destroyCommand new DestroyCommand(this);destroyCommand.Execute();}}} 对比这篇文章C# x Unity 从玩家控制类去分析命令模式该如何使用_unity c# 命令模式-CSDN博客         我在这里进行了小小的变动 原因 内存上栈比堆快 AI说的 栈在内存分配和释放操作上比堆快主要基于以下原因          ### 1. 分配机制         - **栈的分配**栈的内存分配非常简单直接类似于往栈中压入数据。栈有一个栈顶指针当有新的数据如局部变量、函数调用信息等需要存储时栈顶指针移动相应的字节数为新数据腾出空间。这个过程几乎不涉及复杂的查找或计算是一个高效的线性操作。例如在一个函数中定义一个 int 类型的局部变量栈顶指针只需移动4字节假设为32位系统即可完成该变量的内存分配。          - **堆的分配**堆的内存分配则相对复杂。堆内存是一块连续的、较大的内存区域但被分配出去的内存块大小不一且分布离散。当程序请求在堆上分配内存时堆管理器需要遍历已分配和未分配的内存块列表寻找一块大小合适的空闲内存块。如果没有恰好合适的内存块可能还需要进行内存分割等操作。这种查找和处理过程会消耗更多的时间和资源。例如在堆上分配一个动态数组堆管理器需要找到足够大的连续内存空间如果没有合适的可能需要将一个较大的空闲块分割成满足数组大小的部分和剩余的空闲块。         ### 2. 释放机制         - **栈的释放**栈的内存释放遵循后进先出LIFO原则如同从栈中弹出数据。当一个函数执行结束其对应的栈帧会被销毁栈顶指针会恢复到函数调用前的位置栈上为该函数局部变量等分配的内存空间自动被释放。这个过程不需要额外的复杂操作直接移动栈顶指针即可非常高效。例如函数执行完毕后函数内定义的局部变量存储在栈上所占用的内存会随着栈帧的弹出而立即释放。          - **堆的释放**堆上对象的内存释放较为复杂尤其是在使用垃圾回收机制如在C#、Java等语言中的环境下。当一个对象不再被引用时它不会立即被释放。垃圾回收器需要定期运行通过标记 - 清除、复制、标记 - 整理等算法来识别和回收不再使用的对象。这个过程涉及到对整个堆内存的扫描、标记存活对象、移动和整理内存等操作不仅会暂停应用程序的正常执行产生“stop - the - world”现象而且算法本身也比较复杂消耗较多的CPU时间和资源。即使在手动管理内存的语言如C中释放堆内存也需要程序员手动调用 delete 或 free 等函数并且要确保释放的时机和顺序正确否则容易引发内存泄漏等问题。         ### 3. 内存结构特点           **栈的结构**栈的内存结构相对简单和紧凑数据按照顺序依次存储在栈上内存布局相对固定。这种简单的结构使得栈的内存管理效率高访问速度快。例如在栈上访问一个局部变量由于其内存位置是在栈顶附近根据栈顶指针和变量在栈帧中的偏移量可以快速定位到变量的内存地址。          - **堆的结构**堆的内存结构较为复杂由于频繁的分配和释放操作容易产生内存碎片化问题。即堆中会出现许多不连续的空闲内存块虽然总的空闲内存空间可能足够但由于不连续无法满足某些较大内存块的分配请求。为了应对碎片化问题堆管理器需要额外的机制来管理和整理内存这进一步增加了堆内存管理的复杂性和开销。 •    struct是值类型分配在栈上通常会有更好的性能特别是在频繁创建和销毁对象的情况下因为它们不需要垃圾回收 •    class是引用类型分配在堆上可能会导致更多的垃圾回收开销特别是在频繁创建和销毁对象的情况下。 不信也没办法我不知道怎么去追踪每一次点击之后:上一个失去引用的对象 在 内存中被释放 这个过程
http://www.pierceye.com/news/278037/

相关文章:

  • 建站程序aspiis 默认网站 删除
  • 手机开网店的免费平台河南seo推广多少钱
  • 网站app推广怎么做wordpress 手机号注册
  • 网站开发到上线需要多久骆驼有没有做网站的公司
  • 中小企业网站建设示范平台wordpress停用react
  • 网站怎样防止攻击seo顾问培训
  • 网站建设后需要维护吗微信安全中心官网
  • dw可以做h5网站设计素材网站0
  • 建设银行郑州中心支行网站青海商会网站建设公司
  • 国外小型网站中国视觉设计网
  • 沈阳专业网站制作团队泰安网络软件公司
  • 网站建设招聘兼职0基础建站教程
  • 如何从零开始做网站文学网站建设平台
  • 企业网站的网址通常包含dchaser wordpress
  • 什么是做网站flash是怎么做网站的
  • 什么是速成网站石家庄网站建设就找
  • 张家界网站建设要求滨州网站建设费用
  • wordpress订阅插件南昌优化排名推广
  • 国外做网站公司能赚钱吗wordpress登录锚点弹
  • 微网站平台微网站建设方案邢台市有几个区几个县
  • 茶叶外贸网站建设中国建设银行是国企还是央企
  • 成都网站建设公司有哪些内容必应搜索
  • 青岛建设集团招聘信息网站公司官网怎么制作
  • 本溪网站开发公司电话县蒙文网站建设汇报
  • 广州建网站有哪些怎么做网站建设赚钱
  • led视频网站建设邯郸建设信息网站
  • 开发网站培训班网站详情页用cdr做可以吗
  • 相亲网站开发与设计报告广州网站维护
  • 门户网站 技术方案北京感染人数最新消息
  • 网站制作过程流程酷家乐在线设计官网