Telemetry

Telemetry 特性

Telemetry 是一个完整的性能可视化系统 ,被设计来帮助你整个团队理解和优化你的游戏. 与仅仅聚焦于一个单独的帧或一个执行范围的低级的方面不同,Telemetry向你显示正在进行的任何事情,在你的游戏的整个过程中, 因此你能够修复间歇性的性能问题(hitches 和 spikes). 让整个团队参与进来 -- 优化不再只是程序员的事情了! 用图表表示游戏内变量,看看他们是如何影响到性能的 -- 现在当有一个尖峰在帧时间时,你的美术师和策划师能够看到游戏内变量,并且看看是什么触发了性能问题.

识别性能的热点

通过快速标识性能陡坡来标识优化区域. 时间线视图水平地和垂直地显示帧时间,因此你能够快速聚焦到热点. 传统的性能分析器能够告诉你你在某一个函数或某一个执行区域上总体花了多少时间,Telemetry能够告诉你 何时 你变慢了, 而不只是变慢本身 !将失灵的帧率平滑一次就可以了.

可视化线程关系

在今天的多线程,多核心世界,程序员必须能够高效地调试和优化线程交互. Telemetry 图形化地演示你的线程是如何一起工作的,如何互相影响.标识空闲区域,锁争用,失速和上下文切换.一个线程使用一个共享资源,在一次打斗失速了几毫秒? 你是否正在设定了一个锁太久了?是否你的一些进程正在空闲,而他们应该是在工作的?Telemetry能够回答很多这些问题!

可视化执行流程

Telemetry的程序分区等级层次视图使程序的执行路线清晰化了.看看谁在调用谁, 什么时候,调用了多久.不像传统的性能分析器,Telemetry让你看到的不只是在区域里花地时间,而是这些区域在时间上的相互关系.

内存事件

Telemetry显示内存事件在它们自己的轨迹上,使你能够发现有问题的内存使用模式.通过悬停在一个内存事件上,你能看到 它发生在哪里 (file/line), 它发生在哪个区域,你给它的名字,它的大小和它的相关的释放或分配.

用图表显示游戏数据

使用Telemetry的易于使用的API,可以用图表表示游戏特定变量. 视觉上将你的游戏状态和总体性能之间的关系关联起来. 用类型数据打上标签,Telemetry Visualizer 会以合适的格式呈现那些数据(float,hex,memory size,time,etc.).

printf-风格日志API

发送 printf-风格消息给服务器以便以后复审.你能够分辨消息是日志信息,警告,或者错误. 可选择放置事件发生源在区域的顶部,这样易于追踪.使用我们的path-like分类系统,可以仅仅显示你感兴趣的特定消息类别.


在一个区域内德消息输出被显示为区域tooltip的一部分.

性能分析到一个本地机器或者网络服务器

Telemetry使用一个client-server架构 -- 数据从你的游戏被发送到一个服务器,由服务器负责保存和处理性能分析数据. 当然,那个服务器能够运行在你自己的机器上,但是它也能被运行在一个独立的机器上,这看你的需求了.

保存和翻译你自己的二进制 'Blob' 数据

Telemetry 测量和传输那些它知道的事情,但是在一些情况下,你会有自己的私有数据. 因为这个原因,我们提供了一个可定制的二进制对象("blob") API ,它让你发送不透明的数据到服务器.通过写一个个性化的Visualizer 插件,你能够显示这些私有信息在它自己专用的轨迹上.通常的使用包括发送截图, 定制的内部硬件信息,等等.

查看在Windows和360上的上下文切换

在 Windows 7下 (合 Vista) 和在XBOX 360 Telemetry 能够捕捉和显示每核心/硬件线程的线程活动. 现在你能够清楚地看到哪个线程运行在哪个核心上. 标识空闲或停放的核心.找出哪个后台任务正在花可观的计算周期.


How it Works

所有这些是通过监测你的应用程序,标记那些定义的执行区域来实现的. (举例额来说, 函数调用),内存事件,线程名字等等. 那些标记是很简单,容易整合,同时也容易通过定义 NTELEMETRY=1 并重编译来移除.

一旦你的程序被装上了, 你只需运行它,开始捕捉数据. 你能够复查这些实时数据或保存它,迟些再看.

Telemetry的开销是最小的且可预测的. 我们只是使用你给我们的内存 -- 我们不做任何内存分配 -- 它的性能开销和所生成的数量多少是成比例的. 另外,可能的话,大多数Telemetry的处理在一个后台线程处理完, 那会对你的主线程的影响最小.

Telemetry致力于 易于使用,易于整合,最小化运行时性能冲击和内存占用.

系统需求

Telemetry有运行时支持在Microsoft XBOX 360, Sony PS3 (PPU and SPU), Windows XP SP3 and later (32 and 64-bit), Linux (x86 and x64), and OS X 10.6+ (32- and 64-bit, Intel only). Visualizer是支持Windows 和 OS X, 命令行服务器支持Windows (64-bit), OS X (64-bit), 和 Linux (64-bit). 如果你在你运行游戏的同一个系统上捕捉并分析数据,我们强烈建议一个quad core系统,并且有很多的内存.