查看systemserver中启动的服务所用时长_第1页
查看systemserver中启动的服务所用时长_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Trace一、Trace 概述发现,在 SystemServer 中,每启动一个服务,就会调用:其实traceBeginAndSlog 的定义是:也就是说,每启动一个服务就会调用:Trace.traceBegrace.TRACE_TAG_SYSTEM_SERVER, name);try 启动服务catch (Throwable e) Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER);那么问题来了,这个 Trace的日志信息,到底在哪里可以查到呢?/*Writes a trace message to indicatet a given section

2、of code hasbegun. Must be followed by a call to link #traceEnd using the sametag.*param traceTag The trace tag.param methodName The method name to appear in the trace.*hide*/public sic void traceBegin(long traceTag, String methodName) if (isTagEnabled(traceTag) 将事件写入系统缓冲区。 可以使用 Systrace 工具收集和可视化这些事件

3、。此机制独立于 startMethodTracing()提供的方法机制。 特别地,它使得能够跨多个进程发生的事件。有关使用 Systrace 工具的信息,请参阅使用 Systrace 分析显示和性能。哈哈,出来一个东西 Systrace。等我完了研究下这个 Systrace.Trace.traceBegin二、如何获取 Trace 的 TAG 消息如何获取由上知道,Trace 信息可以通过 Streace 来进行查看:.-c 统计每一系统调用的所执行的时间,次数和出错的次数等.-d 输出 strace 关于标准错误的调试信息.-f-ff-F由fork 调用所产生的子进程.如果提供-o file

4、name,则所有进程的结果输出到相应的filenamd 中,是各进程的进程号.尝试vfork 调用.在-f 时,vfork 不被.-h 输出简要的帮助信息.-i 输出系统调用的指针.-q输出关于脱离的消息.-r 打印出相对时间关于,每一个系统调用.-t 在输出中的每一行前加上时间信息.-tt 在输出中的每一行前加上时间信息,微秒级.-ttt 微秒级输出,以秒了表示时间.-T 显示每一调用所耗的时间.-v 输出所有的系统调用.一些调用关于环境变量,状态,输入输出等调用由于使用频繁,默认不输出.-V 输出 strace 的版本信息.-x 以十六进制形式输出非标准字符串-xx 所有字符串以十六进制形

5、式输出.-a column写入追踪信息标志着当前方法已经结束。必须和 traceBegin 成对的调用并且使用同一个 tag.参数:追踪 tag 和 traceBegin 传入的要一致。至此为止,明白了里的这两句代码是干嘛的:/* Writes trace events to the kernel trace buffer. These trace events can be* collected using the “atrace” program for offlineysis.*/将这些追踪时间写入追踪缓存中。这些追踪事件可以被“atrace”程序收集起来,进行离线分析。/*Writes

6、 a trace message to indicatet the current method has ended.Must be called exactly once for each call to link #traceBegin using the same tag.*param traceTag The trace tag.*hide*/public sic void traceEnd(long traceTag) if (isTagEnabled(traceTag) nativeTraceEnd(traceTag);写入信息这标志着要追踪的代码已经开始运行。必须在后面调用 tr

7、aceEnd,并且使用相同的 tag.参数一:根据的标记 tag;参数二:在追踪路径中显示的方法名。Trace.traceEndnativeTraceBegraceTag, methodName);设置返回值的输出位置.默认 为 40.-e expr.指定一个表达式,用来控制如何qualifier=!value1,value2.格式如下:qualifier 只能是 trace,abbrev,vere,raw,signal,read,write 其中之一.value 是用来限定的符号或数字.默认的 qualifier 是 trace.感叹号是否定符号.例如:-eopen 等价于 -e trace

8、=open,表示只open 调用.而-etrace!=open 表示除了 open 以外的其他调用.有两个特殊的符号all和 none.注意有些s-e tra使用!来执行历史里令,所以要使用.et指定的系统 调用.例如:-e trace=open,close,rean,write 表示只这四个系统调用.默认的为 set=all.只-e trace=file只有关文件操作的系统调用.-e trace=pros只有关进程控制的系统调用.-e trace=network与网络有关的所有系统调用.-e straignal所有与系统信号有关的 系统调用-e trace=ipc所有与进程通讯有关的系统调用

9、-e abbrev=set设定 strace 输出的系统调用的结果集.-v 等与 abbrev=none.默认为 abbrev=all.-e raw=set将指 定的系统调用的参数以十六进制显示.-e signal=set指定的系统信号.默认为 all.如 signal=!SIGIO(或者 signal=!io),表示不-e read=set输出从指定文件中读出 的数据.例如:-e read=3,5-e write=set输出写入到指定文件中的数据.-o filename将 strace 的输出写入文件filename-p指定的进程.-s strsize指定输出的字符串的最大长度.默认为 32

10、.文件名一直全部输出.-u usernameSIGIO 信号.以username 的UID 和GID 执行被令1|RealtekATV:/data/bootchart # strace -husage: strace -CdffhiqrtttTvVwxxy -I n -e expr.-a column -o file -s strsize -P path.-p. / -D -E var=val. -u username PROG ARGSor: strace -cdfw -I n -e expr. -O overhead -S sortby-p. / -D -E var=val. -u use

11、rname PROG ARGSOutput format:-a columnalignment COLUMN for pring syscall results (default 40)-iprinstruction poer at time of syscall-o filesend trace output to FILE instead of stderr-qsuppress messages aboutaching, detaching, etc.-rprrelative timest-s strsizelimit length of prstrings to STRSIZE char

12、s (default 32)-tprabsolute timest-ttprabsolute timestwith usecs-Tprtime spent in each syscall-xprnon-ascii strings in hex-xxprall strings in hex-yprpaths assoted with file descriptor arguments-yyprip:port pairs assoted with socket file descriptorsSistics:-ccount time, calls, and errors for each sysc

13、all and report summary-Clike -c but also prregular output-O overheadset overhead for tracing syscalls to OVERHEAD usecs-S sortbysort syscall counts by: time, calls, name, nothing (default time)-wsummarise syscall latency (default is system time)Filtering:-e expra qualifying expres: option=!all or op

14、tion=!val1,val2.options:trace, abbrev, vere, raw, signal, read, write-P pathtrace acses to pathTracing:-b execvedetach on execve syscall-Drun tracros as a detached grandchild, not as parent-ffollow forks-fffollow forks with outputo separate files-Ierruptible1:no signals are blocked2:fatal signals ar

15、e blocked while decoding syscall (default)3:fatal signals are always blocked (default if -o FILE PROG)4:fatal signals and SIGTSTP (Z) are always blocked(useful to make strace -o FILE PROG not stop on Z)Startup:-E varremove var from the environment ford-E var=valput var=valhe environment ford-ptrace pros with pros id, may be repeated-u usernamerund as username handling setuid and/or setgidMiscellaneous:-denable debug output to stderr-vvere mode: prunabbreviated argv, s, termios, etc. args-hprhelp message-Vprver网上没有这个工具检

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论