#多线程 #优化

microprofile

microprofile 是一个用于分析和优化多线程程序的轻量级库

5 个不稳定版本

0.2.1 2019年8月15日
0.2.0 2019年8月5日
0.1.0 2019年3月15日
0.0.2 2019年3月15日
0.0.1 2019年3月10日

#213性能分析

Download history 32/week @ 2024-04-01 1/week @ 2024-05-20

每月下载量:53
用于 b39wc

MIT 协议

740KB
23K SLoC

C++ 11K SLoC // 0.0% comments C 10K SLoC // 0.1% comments Rust 339 SLoC GNU Style Assembly 202 SLoC Assembly 179 SLoC // 0.1% comments

Build Status

microprofile-rust

microprofile-rust 是一个用于分析和优化多线程游戏代码的性能分析器

它是 microprofile 的 Rust 版本

它反过来又依赖于优秀的 distorm 项目

集成

将 microprofile 添加为依赖项

[dependencies]
microprofile = "0.2.1"

microprofile 应该在每个游戏引擎帧中调用。为此,您需要在每个帧中调用 microprofile::flip。如果您的程序不是基于帧的,您可以使用 microprofile::start_auto_flip(delay_in_ms)microprofile::stop_auto_flip(),这将使 microprofile 每隔 delay_in_ms 毫秒自动调用此函数。

要计时一些代码,您需要在程序中插入一个范围

microprofile::scope!("group-name", "timer-name");

microprofile-rust 的所有函数都作为宏提供。使用 "disabled" 功能可以完全禁用所有宏,并移除所有 microprofile 代码插桩

[dependencies.microprofile]
version = "0.2.1"
features = ["disabled"]

限制

截至版本 0.2.1,仅支持 microprofile 的子集

  • 支持范围计时器
  • 支持动态插桩
  • 支持 Windows、Linux 和 OSX

以下功能不支持:

  • GPU 计时器
  • 计数器

使用 UI

请参阅 microprofile 文档:https://github.com/jonasmr/microprofile

示例代码

更新

  • 0.2.0:更新到 microprofile 3.1:Firefox 支持,为具有 -many- 线程的程序提供更多生活品质功能
  • 0.2.1:更新到最新的 microprofile:修复实时视图中一个严重的性能回归。

无运行时依赖