Performance

Inherits: Object

公开与性能相关的数据。

描述

这个类提供了对一些与性能有关的不同监控的访问,比如内存使用量、绘制调用和FPS。这些与编辑器的Monitor标签中的Debugger面板所显示的数值相同。通过使用这个类的get_monitor方法,可以从你的代码中访问这些数据。

注意: 这些监视器中有几个只在调试模式下可用,当在发布版构建中使用时,将总是返回0。

注意: 这些监控器中的许多不是实时更新的,所以在变化之间可能会有短暂的延迟。

方法

float

get_monitor ( Monitor monitor ) const

枚举

enum Monitor:

  • TIME_FPS = 0 —- 每秒帧数。

  • TIME_PROCESS = 1 —- 完成一帧的时间,以秒为单位。

  • TIME_PHYSICS_PROCESS = 2 —- 完成一个物理帧的时间,以秒为单位。

  • MEMORY_STATIC = 3 —- 当前使用的静态内存,以字节为单位。在发布版本中不可用。

  • MEMORY_DYNAMIC = 4 —- 当前使用的动态内存,以字节为单位。在发布版本中不可用。

  • MEMORY_STATIC_MAX = 5 —- 可用的静态内存。在发布版本中不可用。

  • MEMORY_DYNAMIC_MAX = 6 —- 可用的动态内存。在发布版本中不可用。

  • MEMORY_MESSAGE_BUFFER_MAX = 7 —- 消息队列缓冲区使用的最大内存数量(以字节为单位)。消息队列用于延迟函数调用和通知。

  • OBJECT_COUNT = 8 —- 当前实例化的对象数量(包括节点)。

  • OBJECT_RESOURCE_COUNT = 9 —- 当前使用的资源数量。

  • OBJECT_NODE_COUNT = 10 —- 当前场景树中实例化的节点数。这也包括根节点。

  • OBJECT_ORPHAN_NODE_COUNT = 11 —- 孤儿节点的数量,孤儿节点即无法被按父级追溯到根节点的节点。

  • RENDER_OBJECTS_IN_FRAME = 12 —- 每帧绘制3D对象的数量。

  • RENDER_VERTICES_IN_FRAME = 13 —- 每帧绘制的顶点数。只在3D中有效。

  • RENDER_MATERIAL_CHANGES_IN_FRAME = 14 —- 每一帧的材质变化。仅限3D。

  • RENDER_SHADER_CHANGES_IN_FRAME = 15 —- 每一帧的着色器变化。仅限3D。

  • RENDER_SURFACE_CHANGES_IN_FRAME = 16 —- 每帧渲染面的变化。仅3D中有效。

  • RENDER_DRAW_CALLS_IN_FRAME = 17 —- 每一帧的绘图调用。仅限3D。

  • RENDER_2D_ITEMS_IN_FRAME = 18 —- 每帧绘制的项目或连接的项目。

  • RENDER_2D_DRAW_CALLS_IN_FRAME = 19 —- 每帧绘制调用。

  • RENDER_VIDEO_MEM_USED = 20 —- 使用的视频内存的数量,即纹理和顶点内存的总和。

  • RENDER_TEXTURE_MEM_USED = 21 —- 使用的纹理内存的数量。

  • RENDER_VERTEX_MEM_USED = 22 —- 使用的顶点内存数量。

  • RENDER_USAGE_VIDEO_MEM_TOTAL = 23 —- 在 GLES2 和 GLES3 渲染后端中未实现,始终返回 0。

  • PHYSICS_2D_ACTIVE_OBJECTS = 24 —- 游戏中活跃的RigidBody2D节点数量。

  • PHYSICS_2D_COLLISION_PAIRS = 25 —- 2D物理引擎中的碰撞对数量。

  • PHYSICS_2D_ISLAND_COUNT = 26 —- 2D物理引擎中的岛屿数量。

  • PHYSICS_3D_ACTIVE_OBJECTS = 27 —- 游戏中活动的 RigidBodyVehicleBody 节点的数量。

  • PHYSICS_3D_COLLISION_PAIRS = 28 —- 3D物理引擎中的碰撞对数量。

  • PHYSICS_3D_ISLAND_COUNT = 29 —- 3D物理引擎中的岛屿数量。

  • AUDIO_OUTPUT_LATENCY = 30 —- AudioServer的输出延迟。

  • MONITOR_MAX = 31 —- 表示Monitor enum的大小。

方法说明

返回一个可用监视器的值。你应该提供一个Monitor常量作为参数,像这样:

  1. print(Performance.get_monitor(Performance.TIME_FPS)) # Prints the FPS to the console