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

关于性能优化的说明-–-behaviac

原文

概述

behaviac作为图形化的脚本,设计上是用来调用代码(c++,c#)提供的方法,在调用这些方法的时候会有些额外消耗,该消耗已经被充分优化,可以参考消耗。

实践中,要尽量把需要计算的操作由代码实现,通过方法提供给behaviac,behaviac只是去选择这些方法,behaviac作为选择者,发挥behaviac灵活直观的优势。

设计

要想高效的使用behaviac,首先要有好的设计,需要什么Agent,Agent需要有什么属性,什么方法,有一个好的接口。所谓好,是指不能太底层,也不能太高层。

  • 太底层,意味着需要进行很多小的计算
  • 太高层,意外着失去了灵活性

底层的计算要尽量在代码(c++或c#)实现。behaviac用来做策略选择。

behaviac虽然提供了Assignment,Compute,Compare,IfElse等节点,允许做一些“小的”计算,允许就像写代码一样进行if else的基本选择,但不鼓励这样做。鼓励使用Selector,Sequence,前置,后置等节点及附件。

持续运行的动作

Agent提供的方法,最好是能够持续运行的方法,比如,播放动画,移动一段距离,都是持续很多帧的动作;而不是只是返回某个值,然后再需要在行为树里根据该值做比较,进行计算,再执行其他小的一帧触发的方法。

持续运行的节点在下一帧会被持续继续执行,behaviac不会愚蠢的每一帧都从根节点重新执行。但是,不好的行为树(只是简单的成功或失败,没有返回运行的节点)就会迫使behaviac每一帧都不得不从根节点重新选择。可以参考行为树的基本概念及进阶。

持续运行的动作往往需要大量计算,由代码(c++或c#)实现,behaviac只是在高层去选择使用它,避免大量的计算。这样子,利用behaviac的灵活直观的优势而不会有性能的损失。

并行及选择检测节点

选择监测节点以及并行节点用起来很方便,但是需要提醒的是,相比其他节点,这两个节点比较费。

并行节点每次更新都会更新它所有的子节点(子树),选择监测节点也是如此。不仅如此,这两个节点还会导致接管所在树对处于运行状态节点的控制,形成多一级的控制。(不理解没关系,总之,比其他节点更费。)

不是说这两个节点不能用,但是使用起来请注意其性能,特别的不能滥用,最好不要嵌套这两个节点。

发布版

当发布版本或测量性能的时候,可以定义宏BEHAVIAC_RELEASE关闭开发功能,这样子性能是最优的。或者可以保留开发功能但使用功能开关有选择的关闭或打开开发功能。

关于BEHAVIAC_RELEASE可以参考优化及性能

http://www.cnnetsun.cn/news/133905.html

相关文章:

  • PCB激光钻孔:CO₂激光VS紫外激光,谁更胜一筹?
  • 数据质量革命:Great Expectations如何重塑企业数据治理格局
  • AI如何帮你快速解决SQL Server连接问题
  • torch.matmul性能优化:比传统方法快10倍的技巧
  • OpenModScan 完全指南:掌握工业自动化调试的必备利器
  • 深度学习压缩技术实战:CompressAI框架的5大核心应用场景
  • 10分钟快速上手:Android离线语音识别的终极解决方案
  • 高效PLC通信框架:S7NetPlus实用开发指南
  • 如何快速上手Semantic UI Calendar:终极前端日期选择器指南
  • 电商平台如何用Kafka工具实现实时订单处理
  • Rustup深度解析:告别版本管理烦恼的终极指南
  • FlyFish:企业级数据可视化的低代码革命
  • RobotGo事件监听:构建智能GUI自动化系统的核心技术
  • 超实用教程:Mikan Project带你轻松玩转动漫资源管理
  • Ubuntu输入法实战:打造个性化中文输入环境
  • 3大核心技巧:充分发挥Windows终端扩展能力
  • 零基础学编程:二维数组的5个简单练习
  • Jupyter AI深度应用:重新定义数据科学工作流的智能化转型
  • 基于鸿蒙的在线学习系统的设计与实现外文翻译
  • 基于回归分析的武当山景点游客流量分析与预测+中期检查报告
  • 秒级验证:Windows Docker环境快速搭建方案
  • 零基础入门:Clash Verge的安装与配置指南
  • 小白也能懂:用快马制作第一个SaaS应用的完整指南
  • cks解题思路-1.32-3
  • Luckysheet数据验证终极指南:告别数据录入错误的完整教程
  • EdgeDeflector终极指南:重夺Windows浏览器选择权
  • 策略模式VS if-else:性能对比实测
  • KlipperScreen触摸屏界面终极安装完整指南
  • 比Docker官方源快10倍:国内镜像源深度测评
  • 【小陈背八股-C++】Day04-大厂面试直击:Vector扩容机制,你真的懂STL容器吗?