1. 性能分析
- Perfetto (Perfetto是Android 10引入的系统级跟踪工具,它提供了用于记录系统级和应用程序级跟踪的服务和库,本机Java堆分析,使用SQL分析跟踪的库,以及基于Web的UI以可视化的系统性能分析。)
- systrace (Systrace是Android 4.1中新增的性能数据采样和分析工具,它可以帮助开发者收集Android关键子系统(如SurfaceFlinger、SystemServer、Kernel、Input、Display等Framework部分关键模块、服务以及View系统等)的运行信息。通过这些信息,开发者可以更直观地分析系统瓶颈,并据此改进性能)
- ftrace (for linux kernel, ftrace简介 - Jefree - 博客园)
2. 内存检测
- AddressSanitizer(简称 ASan)
- kmemleak (for linux kernel)
3. 源码定位
- llvm-symbolizer (LLVM 命令指南_梦在哪里的博客-CSDN博客_llvm-link)
- addr2line (binutils——GCC的辅助工具集_食梦少年的博客-CSDN博客)
4. linux 内存相关节点
- /proc/meminfo
- /proc/vmallocinfo
- /proc/slabinfo
- /proc/buddyinfo
- /proc/vmstat (提供了关于虚拟机内存(VM)统计信息的快照。这个文件包含了各种内存管理相关的统计数据)
5. linux内存命令
- free
- pmap (一个用于显示进程内存映射的工具,它可以帮助用户查看进程的内存使用情况,包括虚拟内存区域的起始地址、权限、大小以及映射到的文件或设备等信息, pmap [options] <pid>
) - vmstat (用于报告虚拟内存统计信息,提供了关于内核进程、中断、系统调用等的详细信息 vmstat [options] [delay [count]])
6. Android内存泄漏调试(Android系统内存泄露之必备调试工具 - 灰信网(软件开发博客聚合))
- procrank
- procmem
- librank
- dumpsys meminfo
- cat /proc/meminfo
- vmstat
- dumpcache
- valgrind
7. Android内存debug
- Android Profiler
- Android LeakCanary
8. 常用监控工具
- top
- uptime (用于显示系统运行时间、当前登录用户数量以及系统平均负载 uptime [options])
- ps, pstree
- free (用于显示系统内存使用情况 free [选项] [延迟时间] [次数])
- mpstat (用于监控每个处理器性能,其全称为Multiprocessor Statistics(多处理器统计))
- iostat (用于监控系统输入/输出(I/O)性能)
- netstat, ss (
netstat是一个用于显示网络连接、路由表和网络统计信息的命令行工具。它可以帮助用户查看当前系统中的网络状态,如已建立的连接、监听端口、路由表等。ss命令是netstat命令的替代品,功能更强大,且执行速度更快。它用于显示socket状态,可以显示PACKET sockets、TCP sockets、UDP sockets、DCCP sockets、RAW sockets、Unix domain sockets等统计信息) - sar (SAR(System Activity Reporter)是Linux系统中常用的性能分析工具,用于收集、报告和分析系统活动。它可以显示CPU、内存、磁盘、网络等各种系统性能指标,帮助管理员了解系统的运行状况,识别性能瓶颈,并进行优化)
- numastat (用于显示NUMA(Non-Uniform Memory Access,非均匀内存访问)架构下内存统计信息的命令)
- pmap (一个用于显示进程内存映射的工具,它可以帮助用户查看进程的内存使用情况,包括虚拟内存区域的起始地址、权限、大小以及映射到的文件或设备等信息, pmap [options] <pid>
) - iptraf (网络监控工具,它可以用于实时查看网络流量、连接数、接口信息等)
- strace, ltrace (
strace是一个系统调用跟踪工具,它可以追踪程序执行时的系统调用以及接收到的信号,strace能够捕获这些调用的详细信息,包括调用的名称、参数、返回值以及执行时间等. 是一个库函数调用跟踪工具,它可以显示应用程序在运行时调用的所有库函数及其参数和返回值. 库函数调用是程序调用动态链接库(如libc等)中的函数,ltrace有助于了解程序与库之间的交互细节) - gnuplot (Gnuplot是一种功能强大的开源绘图工具,它允许用户通过命令行界面或脚本文件来绘制各种高质量的科学图表和数据可视化图形)
- Gnome System Moniter (GNOME系统监视器是一个用于监视系统资源使用情况和进程活动的工具。它提供了图形化的界面,使用户可以通过简单的点击操作查看和管理系统资源和进程)
本文详细介绍了Linux和Android系统中用于性能分析、内存检测的工具,包括Perfetto、systrace、AddressSanitizer等,并提到了源码定位工具如llvm-symbolizer和addr2line。此外,还列举了Linux内存相关节点和内存命令,以及Android内存泄漏调试工具如AndroidProfiler和LeakCanary。文章涵盖了从系统层面到应用层面的多种调试技术和实践。


被折叠的 条评论
为什么被折叠?



