我开发的一些平台没有分析工具.我正在寻找您个人用来帮助您识别热点的建议/技巧,而无需使用分析器.
目标语言是C++.
我对你个人使用的东西很感兴趣.
不开玩笑:除了将时间转储到std :: cout和其他面向文本/数据的方法之外,我还使用了Beep()函数.听到两个"哔"检查点之间的沉默差异会产生不同的印象.
这就像查看书面乐谱和实际听到音乐之间的区别.这就像读取rgb(255,0,0)和看到消防车红色之间的区别.
所以,现在,我有一个客户端/服务器应用程序和不同频率的蜂鸣声,标记客户端发送消息的位置,服务器开始其回复,完成其回复,回复首先进入客户端等,我可以非常自然而然地感觉到时间花在哪里.
我发现以下内容非常有用:
#ifdef PROFILING # define PROFILE_CALL(x) do{ \ const DWORD t1 = timeGetTime(); \ x; \ const DWORD t2 = timeGetTime(); \ std::cout << "Call to '" << #x << "' took " << (t2 - t1) << " ms.\n"; \ }while(false) #else # define PROFILE_CALL(x) x #endif
哪个可以在调用函数中使用:
PROFILE_CALL(renderSlow(world)); int r = 0; PROFILE_CALL(r = readPacketSize());