二维码

[性能] abap运行时间分析工具se30使用介绍

Twilight发表于 2014-02-09 16:50吉他辉 最后回复于 2017-09-11 09:26 [复制链接] 13585 2

(旧)运行时间分析工具:se30
(新)运行时间分析工具:SAT
1.0 简要说明
Se30运行时分析工具,提供了详细的程序运行时环境的数据,对性能调优有很大的帮助。我们可以通过SE30分析事务代码(tcode)程序(se38)函数组(function module)的运行效率,并且可以直接对比分析SQL语句的运行情况。初始界面如下图所示。
SE30-1.jpg
图例1-1

如上图所示,在In Dalog栏内的(事务)(程序)(功能模块)单选一个,然后输入需要分析的程序名,事务代码或者功能模块。然后点击有运行标志的 Execute 按钮,则程序将进入正常的运行状态,在你完成运行后,程序将自动进入上去所示的界面。然后可以点击图上左下脚的 Evaluate 按钮。将进入分析评价界面,如下图所示。
SE30-2.jpg
图例1-2

上面的步骤基本上就完成了一个最基本到运行时分析(更详细的将下文逐一介绍)。在上图的这个界面中你可以看到程序在各个部分所消耗的时间,从而判断程序的效率。

2.0 各部分详细
2.1 计量栏内容
在图例1-1中,可以看到在计量栏下有以下2个内容。  带有指示灯的 Reliability of Time Values :在图1-1中可以看见指示灯是红色,将鼠标 停留其上可以看到显示4 processors 既为处理器的个数,点击F1,将显示以下文本。  
On some platForms, invalid time values can occur on multiprocessor machines(在多CPU的平台上,时间评估可能无效)
In such cases, the a red traffic light is displayed. If the number of processors cannot be determined, the traffic light is set to amber(CPU数量如果未知,指示灯为红色)
The traffic light is also set to red due to incorrect times if the system is running with a debug kernel. The text "Debug kernel" is then added to the quick info for the traffic light icon.(如果系统运行在DEBUG KERNEL 鼠标停留所显示的信息为“Debug Kernel”)
Short Descriptn : 为你的操作添加一个描述,最好写一个简要的描述,以备以后查询。

2.2 In Parallel Session
在图1-1 中,在右边可以看见带有运行标示的 Switch on/off 按钮,点击进入 work process 界面。如下图所示。
SE30-3.jpg
图例2-1

在该清单中列出了所有的  work process 。用鼠标选定一条,点击激活按钮,如果需要取消就点击取消激活,如果点击激活则,该条目有黄色三角灯亮起。在执行了一次Measurement(计量,测量)结束后,在 work process 清单中会列出完成的结果和 Measurement文件的路径,指示灯则为绿色四方灯。如果并行执行,效率会提高,并且可以查看每一个进程的runtime Measurement 结果和路径。

2.3 Schedule
在图1-1中,在右边中部可以看见带运行标示的 For User/Service 按钮,点击进入测试计划界面,如下图所示。
SE30-4.jpg
图例2-2
在设定测试参数和计划日期后,凡在该日期内的执行相应程序将被记录运行时数据。该功能可用于远程跟踪某用户的实际使用情况,通过测试计划,可以实现无人值守自动化性能追踪,并且扩大测试范围。
详细说明如下:  
User: 所要记录运行时数据的用户名,既执行程序的用户名。
Client: 执行程序所在的客户端。
External Session: 在哪个External Session 中执行的程序被记录数据。1表示只在1号进程执行的程序被记录数据,而其他的进程的不记录。0表示所有的都记录。  
Process Category: 程序的类型,Dialog,Update,RFC等。  
Object Type: Transaction, Report, Function等,与下面的对象配合,确定相应的启动方式。
Object Name: tcode 程序名 功能函数名。  
Max. No. of Sched. Measurements: 再次统计期间,该程序的统计结果文件数,也就是 在SE30 刚进去屏幕里点击 Other File 时看到的清单中的文件数。  
Expiration Date ,Expiration Time:统计时间有效期。

2.4 Measurement Restrictions
在程序运行中可以使用变式,一般使用默认变式,其中包含了大部分程序运行时数据信息。我们也可以自己创建,更改,删除变式。具体如下图所示。
SE30-5.jpg
图例2-3  

在图2-3中点击创建后,将进入变式的设置界面。其中有3个tabstrip 分别是Program(parts)  Statements  Duration/Type 。   Program(parts):这个TAB的功能是设置记录那些子程序,功能函数,类的方法的 运行时数据。具体如下图。
SE30-6.jpg
图例2-4  

Within and below: 即某一子程序或者由它调用的所有子程序。  
Particular Unts:程序某些特定的部分运行时才会被记录数据,这些特定的部分包括  SET RUN TIME ANALYZER ON/OFF 语句之间的部分。  RFC, Update:RFC 以及 update 调用的程序也纳入数据记录范围,记录的结果将储 存在单独的文件中,这些文件同样可以在SE30中查看。  Table control :在可输入表格中从左到右字段一次是 ,类型 ,子程序名 ,本地类 名,过程类型 ,过程名。   
Statements:可以选择需要统计的ABAP语句,各项都很好理解,对于内表比较大  程序ABAP逻辑比较复杂的程序进行性能追踪的时候,这些选项将很有效果。具体如下图。
SE30-7.jpg
图例2-5  

Duration/Type:其中只是对运行时间的长短,文件大小进行一下设置,如下图所示。
SE30-8.jpg
图例2-6  

Max. size of file :  运行时数据最大长度。  
Maximum runtime: 最长运行时间,超时则终止。  
Aggregation:  统计规则(full:所有的同类语句,如同一个表内的SELECT归为一个数 据显示;
per call position:程序代码中同一个位置的调用归为一个数据显示;
None:不归纳,所有数据都单独显示)。  
With memory use(if aggretation not used):如果使用None的方式,则这个选项 将用来计算使用内存,但很消耗性能,内存占用的数据在调用的树形结构中显示。

2.5 Performance Date File
在se30的初始屏幕,有如下图的一个显示栏。
SE30-10.jpg
图例2-7

在这屏幕里显示的是此次的运行时数据信息,应用程序,简短描述,测量日期,File size in KB 意思十分直白,很容易理解。具体的讲述下,Evaluate , Other File, File Info, 删除。
Evaluate:查看此次分析的结果。运行的时间分为三个部分,分别是ABAP(ABAP代 码执行的时间),数据库(读写数据库的时间),R/3系统(R/3平台调度进程等消耗的时间)。  
Other File:打开所有系统上保存的运行时数据信息,经过选择屏幕后,可以查看或 者删除。(通过‘other files’ 你可以得到前几次测量的跟踪文件,注意,SE30的跟踪文件在8天之后将会自动被删除。另外由于跟踪文件是存储在你所登陆到的应用服务器之上的,所以你要清楚你登陆的是哪个服务器。)  
File Info:此次运行时分析数据文件信息,与性能的评测没有关系,可以忽略。  
删除:   删除此次分析结果。

2.6 命中列表  
命中列表和所在的位置看下表:
SE30-11.jpg
图例2-8

命中列表与前文中提到的Aggregation方式有关,以Full Aggregation 为例从左到右。 Number: 被调用的次数。
Gross Time : 该语句,子程序以及被其调用的子程序,语句所消耗的时间。(以微秒记)
=: 如果前后列分别为Gross Time 与 Net Time 的话,该列会显示为“=”号。
Net time:该语句,子程序不包括被其调用的子程序,语句的消耗时间。(以微秒记)
Gross %:显示为 Gross Time 在总时间中占用的时间比。
Net %:显示为 Net time 在总的时间中占用的时间比。
Call:语句或者子程序。  程序名   :语句或者子程序所属的程序,类名。
Type:系统 DM 空白 分别表示ABAP运行时环境,数据库读写,ABAP代码所 消耗的时间。  Display Filter Group :显示过滤的组。

2.7 提示与技巧
在SE30 初始屏幕上的按钮,在其中提供了一些范例,可以通过比较得到更高效率的代码书写方式。也可以自己输入所需要比较的代码。具体如下图所示。
SE30-12.jpg

程序运行时间分析进一步学习:se30分析程序运行时间实例
回复

使用道具 举报

zhongguomao
好东西啊,这个必须顶啊,开发必备啊。
回复 支持 反对

使用道具 举报

吉他辉
学习啦,,以后可以用
回复 支持 反对

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表