性能分析 函数粒度 函数里的一条语句 汇编 反编译 机器指令

在Linux下做性能分析3:perf - 知乎 https://zhuanlan.zhihu.com/p/22194920

Linux Perf 性能分析工具及火焰图浅析 - 知乎 https://zhuanlan.zhihu.com/p/54276509

perf record -a -g -e cycles -e cs #系统整体采样

查看指定进程

redis-server

perf report --pid 7070

mysqld

perf report --pid 5634

Samples: 25K of event ‘cs‘, Event count (approx.): 463138
Children Self Command Shared Object Symbol
0.04% 0.00% mysqld [unknown] [.] 0xffffffff83b100f0 ?
0.04% 0.00% mysqld [unknown] [.] 0xffffffff83b0fbd6 ?
0.04% 0.00% mysqld [unknown] [.] 0xffffffff83b0de8b ?
0.04% 0.00% mysqld [unknown] [.] 0xffffffff83b0d1a6 ?
0.03% 0.00% mysqld mysqld [.] os_event::wait_time_low ?
0.03% 0.00% mysqld libpthread-2.17.so;5d9ff4e7 (deleted) [.] 0x00007f23ef6b0d12 ◆
0.02% 0.00% mysqld mysqld [.] lock_wait_timeout_thread ?
0.01% 0.00% mysqld mysqld [.] thd_prepare_connection ?
0.01% 0.00% mysqld mysqld [.] check_connection ?
0.01% 0.00% mysqld mysqld [.] acl_authenticate ?
0.01% 0.00% mysqld mysqld [.] do_auth_once ?
0.01% 0.00% mysqld mysqld [.] native_password_authenticate ?
0.01% 0.00% mysqld mysqld [.] server_mpvio_read_packet ?
0.01% 0.00% mysqld mysqld [.] parse_client_handshake_packet ?
0.01% 0.00% mysqld libpthread-2.17.so;5d9ff4e7 (deleted) [.] 0x00007f23ef6b0965 ?
0.01% 0.00% mysqld mysqld [.] srv_master_thread ?
0.01% 0.00% mysqld libpthread-2.17.so;5d9ff4e7 (deleted) [.] 0x00007f23ef6b3e3d ?
0.01% 0.00% mysqld [unknown] [.] 0xffffffff83ac6d36 ?
0.01% 0.00% mysqld [unknown] [.] 0xffffffff83ac6bdb ?
0.01% 0.00% mysqld [unknown] [.] 0xffffffff84167f06 ?
0.01% 0.00% mysqld mysqld [.] buf_flush_page_cleaner_coordinator ?
0.01% 0.00% mysqld mysqld [.] sslaccept ?
0.01% 0.00% mysqld mysqld [.] yaSSL_accept ?
0.00% 0.00% mysqld mysqld [.] srv_monitor_thread ?
0.00% 0.00% mysqld libc-2.17.so;5d9ff4e7 (deleted) [.] 0x00007f23ee08a3d5 ?
0.00% 0.00% mysqld mysqld [.] mysqld_main ?
0.00% 0.00% mysqld [unknown] [.] 0xffffffff8416813d ?
0.00% 0.00% mysqld mysqld [.] srv_error_monitor_thread ?
3793a0 3793b0 g std::string::_Rep::[email protected] ?
?

Samples: 159K of event ‘cpu-clock‘, Event count (approx.): 39969500000
Children Self Command Shared Object Symbol
+ 0.72% 0.00% mysqld libpthread-2.17.so;5d9ff4e7 (deleted) [.] 0x00007f23ef6acdd5
+ 0.71% 0.00% mysqld mysqld [.] pfs_spawn_thread
+ 0.71% 0.00% mysqld mysqld [.] handle_connection
+ 0.60% 0.00% mysqld mysqld [.] thd_prepare_connection
+ 0.60% 0.00% mysqld mysqld [.] check_connection
+ 0.60% 0.00% mysqld mysqld [.] acl_authenticate
+ 0.60% 0.00% mysqld mysqld [.] do_auth_once
+ 0.60% 0.00% mysqld mysqld [.] native_password_authenticate
+ 0.60% 0.00% mysqld mysqld [.] server_mpvio_read_packet
+ 0.60% 0.00% mysqld mysqld [.] parse_client_handshake_packet
+ 0.60% 0.00% mysqld mysqld [.] sslaccept
+ 0.58% 0.00% mysqld mysqld [.] TaoCrypt::a_exp_b_mod_c
+ 0.58% 0.00% mysqld mysqld [.] TaoCrypt::AbstractRing::Exponentiate
+ 0.58% 0.00% mysqld mysqld [.] TaoCrypt::ModularArithmetic::SimultaneousExponentiate
+ 0.58% 0.00% mysqld mysqld [.] TaoCrypt::AbstractGroup::SimultaneousMultiply
+ 0.54% 0.00% mysqld mysqld [.] yaSSL_accept
0.47% 0.00% mysqld mysqld [.] yaSSL::sendServerKeyExchange
0.47% 0.00% mysqld mysqld [.] yaSSL::ServerKeyExchange::build
0.47% 0.00% mysqld mysqld [.] yaSSL::DH_Server::build
0.47% 0.00% mysqld mysqld [.] TaoCrypt::MontgomeryRepresentation::Square
0.47% 0.00% mysqld mysqld [.] TaoCrypt::RSA_PublicKey::ApplyFunction
0.47% 0.00% mysqld mysqld [.] yaSSL::RSA::sign
0.47% 0.00% mysqld mysqld [.] TaoCrypt::RSA_Encryptor<TaoCrypt::RSA_BlockType1>::Encrypt
0.36% 0.00% mysqld mysqld [.] TaoCrypt::MontgomeryReduce
0.32% 0.03% mysqld mysqld [.] TaoCrypt::RecursiveMultiply
0.27% 0.24% mysqld mysqld [.] TaoCrypt::Portable::Multiply8
0.18% 0.01% mysqld mysqld [.] TaoCrypt::RecursiveMultiplyTop
0.17% 0.01% mysqld mysqld [.] TaoCrypt::RecursiveSquare
0.15% 0.00% mysqld mysqld [.] TaoCrypt::RecursiveMultiplyBottom
0.14% 0.13% mysqld mysqld [.] TaoCrypt::Portable::Add
0.10% 0.00% mysqld mysqld [.] TaoCrypt::MontgomeryRepresentation::Multiply
0.10% 0.00% mysqld mysqld [.] do_command
0.10% 0.00% mysqld mysqld [.] TaoCrypt::AbstractRing::MultiplicativeGroupT::Accumulate
0.08% 0.00% mysqld mysqld [.] dispatch_command
0.08% 0.00% mysqld mysqld [.] yaSSL::processReply
Tip: System-wide collection from all CPUs: perf record -a

Samples: 159K of event ‘cpu-clock‘, Event count (approx.): 39969500000
Children Self Command Shared Object Symbol
0.00% 0.00% nginx [unknown] [.] 0xffffffff8417a6e8 ◆
0.00% 0.00% nginx [unknown] [.] 0xffffffff83aa13f5 ?
0.00% 0.00% nginx [unknown] [.] 0xffffffff83a2e675 ?
0.00% 0.00% nginx [unknown] [.] 0xffffffff8417932c ?
0.00% 0.00% nginx [unknown] [.] 0xffffffff84175ddb ?
0.00% 0.00% nginx [unknown] [.] 0x64222c3030323a22 ?
0.00% 0.00% nginx [unknown] [.] 0x000055d5cf29c5d0 ?
0.00% 0.00% nginx [unknown] [k] 0x0000000000000019 ?
0.00% 0.00% nginx libpthread-2.17.so;5d9ff4e7 (deleted) [.] 0x00007f304e9c4680 ?
0.00% 0.00% nginx [unknown] [.] 0xffffffff83c426af ?
0.00% 0.00% nginx [unknown] [.] 0xffffffff83c41890 ?
0.00% 0.00% nginx [unknown] [.] 0xffffffff83c40da3 ?
0.00% 0.00% nginx [unknown] [.] 0xffffffffc04c1322 ?
0.00% 0.00% nginx [unknown] [.] 0xffffffff83bb8e89 ?
0.00% 0.00% nginx [unknown] [.] 0xffffffff83bb8c12 ?
0.00% 0.00% nginx [unknown] [.] 0xffffffff83aa1075 ?
0.00% 0.00% nginx [kernel.kallsyms] [k] run_timer_softirq ?
0.00% 0.00% nginx libz.so.1.2.7 [.] 0x000000000000388e ?
0.00% 0.00% nginx libz.so.1.2.7 [.] crc32 ?
0.00% 0.00% nginx [unknown] [k] 0x000055d5cf29c6f0 ?
0.00% 0.00% nginx [unknown] [.] 0x000055d5cf1847e8 ?
0.00% 0.00% nginx libz.so.1.2.7 [.] 0x00007f304dc3688e ?
0.00% 0.00% nginx [kernel.kallsyms] [k] do_get_write_access ?
0.00% 0.00% nginx [kernel.kallsyms] [k] eth_type_trans ?
0.00% 0.00% nginx [kernel.kallsyms] [k] radix_tree_descend ?
0.00% 0.00% nginx [kernel.kallsyms] [k] copy_user_enhanced_fast_string ?
0.00% 0.00% nginx [kernel.kallsyms] [k] __x86_indirect_thunk_rax ?
0.00% 0.00% nginx [kernel.kallsyms] [k] _raw_spin_unlock_irqrestore ?
0.00% 0.00% nginx [kernel.kallsyms] [k] check_for_new_grace_period.isra.26 ?
0.00% 0.00% nginx [kernel.kallsyms] [k] __do_softirq ?
0.00% 0.00% nginx nginx [.] ngx_http_create_request ?
0.00% 0.00% nginx [kernel.kallsyms] [k] sys_epoll_ctl ?
0.00% 0.00% nginx nginx [.] 0x0000000000067287 ?
0.00% 0.00% nginx nginx [.] 0x000000000007a501 ?
0.00% 0.00% nginx libz.so.1.2.7 [.] 0x0000000000002c52

Samples: 159K of event ‘cpu-clock‘, 4000 Hz, Event count (approx.): 39969500000
TaoCrypt::Portable::Add /usr/sbin/mysqld [Percent: local period]
3.48 │ lea 0x1(%r8),%r9d ?
3.48 │ mov (%rdx,%r9,8),%rbx ?
│ _ZN8TaoCrypt5DWordplEm(): ?
3.48 │ mov %rbx,%r10 ?
2.99 │ add (%rsi,%r9,8),%r10 ?
3.48 │ add %r10,%r11 ?
4.48 │ setb %r12b ?
6.97 │ xor %eax,%eax ?
1.49 │ cmp %r10,%rbx ?
1.00 │ seta %al ?
│ _ZN8TaoCrypt8Portable3AddEPmPKmS3_j(): ?
7.96 │ add $0x2,%r8d ?
0.50 │ mov %r11,(%rdi,%r9,8) ?
│ _ZN8TaoCrypt5DWordplEm(): ?
1.99 │ add %r12,%rax ?
│ _ZN8TaoCrypt8Portable3AddEPmPKmS3_j(): ?
3.48 │ cmp %r8d,%ecx ?
│ → ja 1318f70 <TaoCrypt::Portable::Add(unsigned long*, unsigned long const*, unsigned long const*, unsigned int)+0x10> ?
0.50 │ pop %rbx ?
│ pop %r12 ?
│ pop %rbp ?
│ ← retq ?
│ DWord(): ?
│ xor %eax,%eax ?
│ ← retq ?
?
?

Samples: 159K of event ‘cpu-clock‘, 4000 Hz, Event count (approx.): 39969500000
TaoCrypt::Portable::Add /usr/sbin/mysqld [Percent: local period]
Percent│ ◆
│ ?
│ ?
│ Disassembly of section .text: ?
│ ?
│ 0000000001318f60 <TaoCrypt::Portable::Add(unsigned long*, unsigned long const*, unsigned long const*, unsigned int)>: ?
│ _ZN8TaoCrypt8Portable3AddEPmPKmS3_j(): ?
1.49 │ test %ecx,%ecx ?
│ → je 1318fd0 <TaoCrypt::Portable::Add(unsigned long*, unsigned long const*, unsigned long const*, unsigned int)+0x70> ?
│ push %rbp ?
│ DWord(): ?
│ xor %eax,%eax ?
│ _ZN8TaoCrypt8Portable3AddEPmPKmS3_j(): ?
│ xor %r8d,%r8d ?
│ mov %rsp,%rbp ?
1.49 │ push %r12 ?
3.48 │ push %rbx ?
5.47 │ mov %r8d,%r10d ?
│ _ZN8TaoCrypt5DWordplEm(): ?
1.49 │ xor %r11d,%r11d ?
│ _ZN8TaoCrypt8Portable3AddEPmPKmS3_j(): ?
1.49 │ mov (%rdx,%r10,8),%rbx ?
│ _ZN8TaoCrypt5DWordplEm(): ?
3.98 │ mov %rbx,%r9 ?
1.00 │ add (%rsi,%r10,8),%r9 ?
1.49 │ add %r9,%rax ?
3.48 │ setb %r11b ?
4.98 │ cmp %r9,%rbx ?
│ _ZN8TaoCrypt8Portable3AddEPmPKmS3_j(): ?
3.98 │ mov %rax,(%rdi,%r10,8) ?
│ _ZN8TaoCrypt5DWordplEm(): ?
5.97 │ seta %r9b ?
6.47 │ xor %r12d,%r12d ?
2.49 │ movzbl %r9b,%r9d ?
5.97 │ add %r9,%r11 ?
Press ‘h‘ for help on key bindings ?

原文地址:https://www.cnblogs.com/yuanjiangw/p/11689445.html

时间: 2024-10-08 19:51:33

性能分析 函数粒度 函数里的一条语句 汇编 反编译 机器指令的相关文章

mysql性能分析show profile/show profiles

MySQL性能分析show profiles show profile 和 show profiles 语句可以展示当前会话(退出session后,profiling重置为0) 中执行语句的资源使用情况. Profiling 功能由MySQL会话变量 : profiling控制,默认是OFF.关闭状态.select @@profiling; 或者show variables like '%profi%': mysql> select @@profiling; +-------------+ |

Android逆向之旅---反编译利器Apktool和Jadx源码分析以及错误纠正

一.前言 在之前的破解过程中可以看到我们唯一离不开的一个神器那就是apktool了,这个工具多强大就不多说了,但是如果没有他我们没法涉及到后面的破解工作了,这个工具是开源的,也是使用Java语言开发的,代码相对简单,我们今天就来分析一下他的大体逻辑,注意是大体逻辑哦,因为如果要一行一行代码分析,首先觉得没必要,其次浪费时间,有了源码,谁看不懂呢.至于为什么要分析这个工具其实原因只有一个,就是我们在之前的反编译过程中会发现,总是有那么几个apk应用不让我们那么容易的反编译,他们就利用apktool

PHP函数的实现原理及性能分析

前言 在任何语言中,函数都是最基本的组成单元.对于php的函数,它具有哪些特点?函数调用是怎么实现的?php函数的性能如何,有什么使用建议?本文将从原理出发进行分析结合实际的性能测试尝试对这些问题进行回答,在了解实现的同时更好的编写php程序.同时也会对一些常见的php函数进行介绍. php函数的分类 在php中,横向划分的话,函数分为两大类: user function(用户函数) 和internal function(内置函数).前者就是用户在程序中自定义的一些函数和方法,后者则是php本身

(转)PHP 函数的实现原理及性能分析

前言 任何语言中,函数都是最基本的组成单元.对于php的函数,它具有哪些特点?函数调用是怎么实现的?php函数的性能如何,有什么使用建议?本文 将从原理出发进行分析结合实际的性能测试尝试对这些问题进行回答,在了解实现的同时更好的编写php程序.同时也会对一些常见的php函数进行介绍. php函数的分类 在php中,横向划分的话,函数分为两大类: user function(内置函数) 和internal function(内置函数).前者就是用户在程序中自定义的一些函数和方法,后者则是php本身

使用xdebug分析thinkphp框架函数调用图

开发中需要性能调优,使用xdebug分析thinkphp框架函数调用图. 关于xdebug的安装参考这2篇 NetBeans配置Xdebug 远程调试PHP php扩展xdebug安装以及用kcachegrind系统分析 1.安装xdebug 需要先去http://www.xdebug.org看看一些文档,xdebug作为php扩展安装 # http://www.xdebug.org/files/xdebug-2.3.3.tgz # tar -xzf xdebug-2.3.3.tgz# cd x

理解运用JS的闭包、高阶函数、柯里化

一.闭包 1. 闭包的概念 闭包与执行上下文.环境.作用域息息相关 执行上下文 执行上下文是用于跟踪运行时代码求值的一个规范设备,从逻辑上讲,执行上下文是用执行上下文栈(栈.调用栈)来维护的. 代码有几种类型:全局代码.函数代码.eval代码和模块代码:每种代码都是在其执行上下文中求值. 当函数被调用时,就创建了一个新的执行上下文,并被压到栈中 - 此时,它变成一个活动的执行上下文.当函数返回时,此上下文被从栈中弹出 function recursive(flag) { // Exit cond

C++性能榨汁机之虚函数的开销

C++性能榨汁机之虚函数的开销 来源  http://irootlee.com/juicer_vtable/ 虚函数的实现 虽然C++标准并没有规定编译器实现虚函数的方式,但是大部分编译器均是采用了虚函数表来实现虚函数,即对于每一个包含虚成员函数的类生成一个虚函数表,一个指向虚函数表的指针被放在对象的首地址(不考虑多继承等复杂情况),虚函数表中存储该类所有的虚函数地址.当使用引用或者指针调用虚函数时,首先通过虚函数表指针找到虚函数表,然后通过偏移量找到虚函数地址并调用.关于虚函数表的更多细节,建

【E2LSH源码分析】E2LSH函数接口

上一小节,我们对E2LSH代码主要的源码框架和用到的数据结构作了简单介绍(http://blog.csdn.net/jasonding1354/article/details/38331229),这一节我将简单介绍一下E2LSH的主要函数接口. 1.构建R-NN数据结构(定义在NearNeighbors.h) 输入为1-δ.R.d和数据集P,利用下面函数来构建: PRNearNeighborStructT initSelfTunedRNearNeighborWithDataSet(RealT t

gcc源代码分析,debug_tree()函数,又一利器啊

gcc源代码分析,debug_rtx()函数,利器啊 print-tree.c #include "config.h" #include "tree.h" #include <stdio.h> /* Names of tree components. Used for printing out the tree and error messages.  */ #define DEFTREECODE(SYM, NAME, TYPE, LEN) NAME,