perf 是怎么计算调用栈的时间的?
在我真个malloc的执行过程中共调用了8次的syswrite的系统调用,其中有两次来自于__lib_write, 两次来自于__memmove_avx_unaligned,然后__memmove_avx_unaligned中有两次是来自于funca,有两次是来自于funb,所以在总共的8次调用中,有两次是来自于funcb,有两次来自于funca.
这里并不是一个时间的关系呢;
Samples: 8 of event 'syscalls:sys_enter_write, Event count (approx.): 8
Children Self Command Shared Object Symbol ▒
- 100.00% 100.00% malloc malloc [.] __libc_write ▒
- 25.00% 0xa3437 ▒
__libc_write ▒
- 25.00% 0x860f20f983483fe1 ▒
__memmove_avx_unaligned ▒
generic_start_main ▒
- main ▒
- 12.50% funcb ▒
func1 ▒
func2 ▒
func3 ▒
__libc_write ▒
- 12.50% funca ▒
func1 ▒
func2 ▒
func3 ▒
__libc_write ▒
- 25.00% 0xa3031300a3437 ▒
__libc_write ▒
- 12.50% 0xa303130353532 ▒
__libc_write ▒
- 12.50% 0xa303130343132 ▒
__libc_write ▒
+ 25.00% 0.00% malloc malloc [.] func3 ◆
+ 25.00% 0.00% malloc [unknown] [.] 0x00000000000a3437 ▒
+ 25.00% 0.00% malloc [unknown] [.] 0x000a3031300a3437 ▒
+ 25.00% 0.00% malloc malloc [.] func2 ▒
+ 25.00% 0.00% malloc malloc [.] func1 ▒
+ 25.00% 0.00% malloc malloc [.] main ▒
+ 25.00% 0.00% malloc malloc [.] generic_start_main ▒
+ 25.00% 0.00% malloc malloc [.] __memmove_avx_unaligned ▒
+ 25.00% 0.00% malloc [unknown] [.] 0x860f20f983483fe1 ▒
+ 12.50% 0.00% malloc [unknown] [.] 0x000a303130343132 ▒
+ 12.50% 0.00% malloc [unknown] [.] 0x000a303130353532 ▒
+ 12.50% 0.00% malloc malloc [.] funca ▒
+ 12.50% 0.00% malloc malloc [.] funcb ▒
▒
▒
为了能够更加精确地看到软件事件的发生,我们选择一个比较生僻的系统调用来观察 perf_event_open
perf 是怎么计算调用栈的时间的?的更多相关文章
- perf打印调用栈的过程
perf_prepare_sample-->perf_callchain-->get_perf_callchain 上面的调用栈会使用 perf_event_output--> 0x ...
- 获取崩溃时的调用栈和生成dump文件,然后自动重启
首先要说明的是: linux 下 比较方便可以得到 崩溃时的调用栈,win下 比较难办 1. linux 获取调用栈 代码奉上: #include <execinfo.h> //在头 ...
- Android群英传》读书笔记 (4) 第八章 Activity和Activity调用栈分析 + 第九章 系统信息与安全机制 + 第十章 性能优化
第八章 Activity和Activity调用栈分析 1.Activity生命周期理解生命周期就是两张图:第一张图是回字型的生命周期图第二张图是金字塔型的生命周期图 注意点(1)从stopped状态重 ...
- Android群英传笔记——第八章:Activity与Activity调用栈分析
Android群英传笔记--第八章:Activity与Activity调用栈分析 开篇,我们陈述一下Activity,Activity是整个应用用户交互的核心组件,了解Activity的工作模式,生命 ...
- Windows下获取Dump文件以及进程下各线程调用栈的方法总结(转)
1. Dump文件的用途 Dump文件, 主要用于诊断一个进程的运行状态,尤其是碰到崩溃(Crash)或者挂起(hang)不响应时,需要分析它的工作状态. 除了平时常见的attach到这个进程, 分 ...
- WinDbg常用命令系列---查看线程调用栈命令K*简介
Windbg里的K*命令显示给定线程的堆栈帧以及相关信息,对于我们调试时,进行调用栈回溯有很大的帮助. 一.K*命令使用方式 在不同平台上,K*命令的使用组合如下 User-Mode, x86 Pro ...
- 《浏览器工作原理与实践》<08>调用栈:为什么JavaScript代码会出现栈溢出?
在上篇文章中,我们讲到了,当一段代码被执行时,JavaScript 引擎先会对其进行编译,并创建执行上下文.但是并没有明确说明到底什么样的代码才算符合规范. 那么接下来我们就来明确下,哪些情况下代码才 ...
- python: 错误处理try详解 ,traceback调用栈, 调试(logging)
摘录:https://www.liaoxuefeng.com/wiki/1016959663602400/1017598873256736 错误处理 调试 错误处理 高级语言都会使用内置的一套try. ...
- JavaScript是如何工作的:引擎,运行时间以及调用栈的概述
JavaScript是如何工作的:引擎,运行时以及调用栈的概述 原文:How JavaScript works: an overview of the engine, the runtime, and ...
随机推荐
- Python中可变数据类型和不可变数据类型
首先,我们需要知道在python中哪些是可变数据类型,哪些是不可变数据类型.可变数据类型:列表list和字典dict:不可变数据类型:整型int.浮点型float.字符串型string和元组tuple ...
- BAT-运行程序
@echo offrem copy C:\Users\Administrator\Desktop\0000\123.txt C:\Users\Administrator\Desktop\0000\45 ...
- R语言爬虫:爬取包含所有R包的名称及介绍
第一种方法 library("rvest") page <- read_html("https://cran.rstudio.com/web/packages/av ...
- AtCoder Regular Contest 098 F.Donation
传送门 首先,对于一个点i,进入这个点前必须大于等于Ai,每个点必须捐赠Bi 那么我们可以在每个点最后一次经过的时候再捐赠,这样显然更优 现在我们假设每个点都是最后一次经过的时候捐赠.现在我们把捐赠的 ...
- ioc解析
引述:IoC(控制反转:Inverse of Control)是Spring容器的内核,AOP.声明式事务等功能在此基础上开花结果.但是IoC这个重要的概念却比较晦涩隐讳,不容易让人望文生义,这不能不 ...
- 北京Uber优步司机奖励政策(11月23日~11月29日)
用户组:人民优步"关羽组"(适用于11月23日-11月29日)奖励政策: 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最 ...
- 【转载】深入研究Windows内部原理绝对经典的资料
原文:深入研究Windows内部原理绝对经典的资料 另一篇资料:深入研究Windows内部原理系列 (为了方便大家下,我打包了放在一下地址: 1-6:http://download.csdn.net/ ...
- SpringBoot学习:整合Redis
项目下载地址:http://download.csdn.NET/detail/aqsunkai/9805821 pom.xml添加对redis的依赖: <!-- https://mvnrepos ...
- 从零学习安全测试,从XSS漏洞攻击和防御开始
WeTest 导读 本篇包含了XSS漏洞攻击及防御详细介绍,包括漏洞基础.XSS基础.编码基础.XSS Payload.XSS攻击防御. 第一部分:漏洞攻防基础知识 XSS属于漏洞攻防,我们要研究 ...
- 韦大仙--python对文件操作 2--写入与修改
请大家看一段代码: yesterday2是我之前上个帖子创建的文件,为了方便大家看清我把本来的代码复制到下面: coding=utf-8 f=open("yesterday2",& ...