ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

d如何及为什么探测器

2021-11-21 23:31:43  阅读:271  来源: 互联网

标签:采样 为什么 调用 perf 探测器 如何 profile 指针 函数


探测器profiler给定输入,生成程序如何花费时间报告.记住:性能不仅由机器码主导.可告诉你如何使算法更快.可分析时间/内存/线程竞争.
程序慢时,要探测.诊断性能,理解程序.定期基测,不时探测,来检查程序.
如何取数据?
采样:中断过程,收集数据,循环…更快.
VTune提供检测和跟踪API.
或者,模拟,如Valgrind.
要测量并保存数据及位置,保存指针及环境,因此调用栈更好
采样调用栈要取指令指针(易),并可遍历调用栈(难).在X86上,省略帧指针可让编译器多用一个寄存器,但损失了调试性.尽量用调试符号分析.
dmd-gs,对GDC-fno-omit-frame-pointer,对ldc--frame-pointer=all.
druntime中的prologepilog,收集计时信息,然后退出程序时存储并打印.输出为trace.log.
-profile缺点,对IO 绑定工作负载,调用非根模块函数不好,配置文件中只能看到检测函数.采样调用图,而非调用栈.仅在函数级,对函数成本高.
dmd探测分配.对时间不是很好,但分配不错.
-profile=gc编译.分析堆不必与语言集成,但了解分配的确切类型有帮助.
1,用-profile=gc编译.2,运行.3,检查profilegc.log日志.
如何呢:
1,低开销,2,采样调用栈,3,分析源码(要求调试信息),4,来自硬件的完整信息,5,跨平台.
用perf.林操系统.
perf_event,测量时间+硬件和软件事件(如页错误),作为(分析器,优化器等)的基础
基本方法:perf record -g收集数据和样本调用栈,-e启用特定性能计数器.
perf report|perf annotate.
cpu提供工具,intelvTune工具,amd/uProf.
Perf的源注释工具功能强大且有用,但有点过时了.
Agner Fog处理器架构专著.
帧分析器,用于展示并发性和并行性.
Coz,分析多线程代码,计算给定行影响.
性能计数器,跟踪执行类型,停顿等统计信息

标签:采样,为什么,调用,perf,探测器,如何,profile,指针,函数
来源: https://blog.csdn.net/fqbqrr/article/details/121462535

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有