se30分析程序运行时间实例

来源:互联网 发布:马云会编程吗 编辑:程序博客网 时间:2024/06/09 22:09
实例分析过程

1.输入程序名和变式。(本次分析使用默认设置)
 

推荐间三个测量变式:
a)PREF_BY_CALL(default):在程序部分什么都不选,语句部分除kernel level  runtime administration和internal table change and read operation之外其它都选,在第三部分设置aggreation ‘per call position’和最大的文件的大小为20000k,最大的运行时间为3000sec  
b)PREF_BY_CALL_ITAB,除了选上internal table change and read operation外其它的 更上面一样 
c)PREF_NO_AGG,除了把第三部分的no aggregation设成ON,其它的跟 PREF_BY_CALL一样 

2. 点击分析运行按钮进入程序运行界面。

3.程序运行成功,输出查找的到所有信息。
 

4.退出程序界面,返回SE30界面,将看到下面的信息。
 

6.到这里,程序运行的过程就已经完了,接下来就是查看 EVALUATE 评价界面和查看命中清单了。

7.点击 Evaluate 按钮进入评价界面将看到一下信息。
 

这个屏幕最重要的信息便是在数据库和应用服务器层的总共运行时间。这些地方正是你可以优化的地方。或许你已经对总共的运行时间有所期望或受外界所限。通常情况下为了达到2sec的响应时间,你在应用层的运行时间要远远小于2sec。而较大的批处理程序可能需要较长的时间。当然运行时间的好坏,还需要你根据具体情况去判断。  图中的红绿颜色没有什么本质上的意义,只是如果它的百分比达到了50%就会由绿色变成红色。  对于一个ABAP程序来说数据库和系统的运行时间应该比较短,至少不能太大。对于系统运行时间来说,10%已经是太大了。对于数据库来说运行时间一般不能超过50%。ABAP是逻辑处理的主要部分,所以ABAP应当占有最多的运行时间。

8.看了解大概情况以后,我们必须知道时间消耗的细节情况,这时我们就必须进入到命中清单了。点击上面图上所表示的图标将进入到命中清单中。具体如下图。
 

在命中清单中,由上到下的便是程序运行的调用顺序。比较重要的测量值是:NO,GROSS和NET,它告诉了你每个操作执行的频次,所需的时间,GROSS包含子操作所花费的时间,NET只计算了操作本身所需的时间。注意时间的单位是微秒,时间是总时间不是每部操作的时间。
查看消耗时间时我们可以首先以gross time倒序排列检查列表,你看到的也是缺省的显示方式。
        1高gross time便是消耗资源较高的分支  
        2然后按照NET TIME排倒序,高的NET TIME便是消耗资源较高的语句

9.命中清单中还有一个非常有用的功能,当我们将光标停留在我们需要关注的那一行,例如上图中有红框选中的那一行,然后点击图中左上角圈住的那个标志。将会出现下图的效果。
 

命中清单就直接调转到程序代码中,所对应的那一个代码段。这样我们就可以很方便的找出,程序中哪一段代码,消耗的时间最多,哪里需要改进,优化。这一功能将是无比方便的。

10.以上的就是整个的过程。在最后如果程序员对程序不满意的话,可以根据分析的结果,进行优化。具体的优化,可以参照SE30里的 提示与技巧 里的代码进行优化
原创粉丝点击