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 性能分析
1.5MB
4K SLoC
timedilator-2
最低开销的TUI跟踪/帧分析器,适用于低延迟应用程序开发。
查看由nanoprof仪器库记录的数据。
警告:此项目处于非常早期阶段,UI和底层分析数据格式(以及nanoprof
库)都将进行重大更改。
关于
Timedilator-2类似于游戏开发中使用的跟踪(也称为帧)分析器,如Optick或RAD Telemetry,但它是为特定的工作环境编写的,用于开发低延迟网络应用程序。这些应用程序通常运行在速度较慢的硬件上,没有显示输出,仅通过SSH连接进行操作。这导致了以下要求
- 用户界面必须能够在没有图形输出的情况下在终端中工作,以便通过SSH连接直接在设备上实时进行分析。
- 跟踪分析器每秒生成大量数据,这些数据必须被记录或发送到某个地方(也许是通过我们正在开发的网络)。分析数据应尽可能简单,尽可能“压缩”。
- 对于这些应用程序的相关延迟甚至比游戏中的更短 - 虽然一个帧可能需要16 毫秒 来渲染,我们可能只有微秒或更少的时间来处理数据包。分析开销应尽可能小,即使这会使添加仪器变得不太方便。
生成的分析器非常适合超低延迟应用程序,也应该适合游戏开发,但如果你不喜欢TUI,你可能需要查看替代方案。
特性
- 纳秒级精度(取决于平台CPU时钟精度)
- 使用nanoprof库进行手动分析
- 低CPU开销
- 使用TUI进行可视化分析 - 我们使用Unicode符号和RGB颜色,使使用尽可能“视觉化”
- 始终在屏幕上显示帮助信息
- 关于分析代码范围(如持续时间百分位、频率等)的统计信息
- 应在支持RGB颜色的任何终端上工作 - 目前仅在Linux和OSX上进行了测试
- 同时配置多个线程
- 可以在实时写入时打开配置文件(.nanoprof文件),或者在测量完成后打开。
入门指南
C/C++
请参阅nanoprof的入门教程。
待办事项:支持更多语言
许可证
在MIT许可证下授权,请参阅文件LICENSE
。
依赖项
~13–19MB
~99K SLoC