#tui #tracing #performance #utility #compression

app timedilator-2

为nanoprof C库提供更快的实时TUI跟踪分析器

4个版本

0.2.2 2022年8月1日
0.2.1 2022年7月22日
0.2.0 2022年7月20日
0.1.0 2022年3月8日

#200 in 性能分析

MIT许可协议

1.5MB
4K SLoC

timedilator-2

最低开销的TUI跟踪/帧分析器,适用于低延迟应用程序开发。

查看由nanoprof仪器库记录的数据。

警告:此项目处于非常早期阶段,UI和底层分析数据格式(以及nanoprof库)都将进行重大更改。

关于

Timedilator-2类似于游戏开发中使用的跟踪(也称为帧)分析器,如OptickRAD Telemetry,但它是为特定的工作环境编写的,用于开发低延迟网络应用程序。这些应用程序通常运行在速度较慢的硬件上,没有显示输出,仅通过SSH连接进行操作。这导致了以下要求

  1. 用户界面必须能够在没有图形输出的情况下在终端中工作,以便通过SSH连接直接在设备上实时进行分析。
  2. 跟踪分析器每秒生成大量数据,这些数据必须被记录或发送到某个地方(也许是通过我们正在开发的网络)。分析数据应尽可能简单,尽可能“压缩”。
  3. 对于这些应用程序的相关延迟甚至比游戏中的更短 - 虽然一个帧可能需要16 毫秒 来渲染,我们可能只有微秒或更少的时间来处理数据包。分析开销应尽可能小,即使这会使添加仪器变得不太方便。

生成的分析器非常适合超低延迟应用程序,也应该适合游戏开发,但如果你不喜欢TUI,你可能需要查看替代方案

特性

  • 纳秒级精度(取决于平台CPU时钟精度)
  • 使用nanoprof库进行手动分析
  • 低CPU开销
  • 使用TUI进行可视化分析 - 我们使用Unicode符号和RGB颜色,使使用尽可能“视觉化”
  • 始终在屏幕上显示帮助信息
  • 关于分析代码范围(如持续时间百分位、频率等)的统计信息
  • 应在支持RGB颜色的任何终端上工作 - 目前仅在Linux和OSX上进行了测试
  • 同时配置多个线程
  • 可以在实时写入时打开配置文件(.nanoprof文件),或者在测量完成后打开。

入门指南

C/C++

请参阅nanoprof的入门教程

待办事项:支持更多语言

许可证

MIT许可证下授权,请参阅文件LICENSE

依赖项

~13–19MB
~99K SLoC