当前位置: 首页 > 工具软件 > MicroProfile > 使用案例 >

microprofile

张毅
2023-12-01

microprofile是一个嵌入式的跨平台的网络分析器。

要集成进代码中需要如下代码:

#include "microprofile.h"
{
	MICROPROFILE_SCOPEI("group","timername", MP_YELLOW);
	... code to be timed
}


且每刷一帧都要调用以下函数:

MicroProfileFlip(nullptr);


在microprofile.cpp中实现microprofile,且它必须包含在工程代码中。nullpointer是传给gpu定时器的void*类型的设备上下文。

microprofile可以不调用MicroProfileFlip来使用,在这种情况下应该调用MicroProfileDumpFileImmediately函数以.html或.csv文件格式来保存分析数据。


Gpu时序:

GPU定时器工作方式除了都放在一个共享组之外,其他方面类似普通定时器。使用宏MICROPROFILE_SCOPEGPUI()来插入。GPU定时器还支持多线程渲染,可适用于以下api:

1.Opengl

2.D3D11

3.D3D12

4.Vulkan


计数器:

MicroProfile支持追踪不同的计数器,会在在线抓取视图中显示出来。如下所示:

MICROPROFILE_COUNTER_ADD("memory/main", 1000);
MICROPROFILE_COUNTER_SET("fisk/geder/", 42);



时间线:

时间线视图是用来标记更长,更唯一的定时器。它可显示类似一个附带有层次名的层次加载视图:

1.显示一段持续很长时间的状态,比单一帧时长更长

2.不会出现在聚合中

3.总是激活的状态且被认为是唯一的

4.有客制化的字符串

有2中方式表示,第一种是以非格式化静态字符串常量形式:

MICROPROFILE_TIMELINE_ENTER_STATIC(MP_DARKGOLDENROD, "one");
MICROPROFILE_TIMELINE_LEAVE_STATIC("one");

第二种方式是,使用变量自定义字符串:

MICROPROFILE_TIMELINE_TOKEN(token);
MICROPROFILE_TIMELINE_ENTERF(token, MP_YELLOW, "custom %d %6.2f", 10, 42.0f);
MICROPROFILE_TIMELINE_LEAVE(token);

实时查看:

详细参考地址


 类似资料: