pb8.0技术(7)

2020-04-16 10:33

Close TraceFile 关闭跟踪文件。 例如,下面通过一个简单的程序从跟踪文件中直接访问执行应用对象的信息,并将这些信息显示在一个数据窗口中。

该程序建立一个窗口,如下图所示:

为窗口中的“TraceFile”按钮编写程序:

string trcfilenmae

TraceFile TcFle

trcfilenmae = \

TcFle = create TraceFile

TcFle.open(trcfilenmae) //打开跟踪文件

string str1,str2,str3,str4,str5,str6

long l1

//直接获取数据

str1 = TcFle.Applicationname

str2 = string(TcFle.CollectionTime)

//显示数据

l1 = dw_1.insertrow(0)

dw_1.setitem(l1,1,str1)

dw_1.setitem(l1,2,str2)

TcFle.Close() //关闭跟踪文件

运行该程序,单击“TraceFile”按钮,即可在数据窗口中显示所执行的应用程序的跟踪信息,如下图所示:

从提取的跟踪数据可以看出,操作系统调用ls应用需要的时间是0.016452秒。

pb_从CallGraph模型中获取信息

本篇文章来源与时代朝阳数据库(原晓通数据库)培训部PowerBuilder 资料库。

Call Graph模型中包含了跟踪文件中所有程序(事件及函数)的执行信息,如程序的执行时间、调用次数等信息,通过BuildModel函数建立Call Graph模型后,可以从下列对象中获取跟踪信息:

? ? ? ? ?

ProfileCall ProfileRoutine ProfileClass Profiling ProfileLine

为了从这些对象中获取信息,需要用到下列函数:

函数 对应的对象 描述 指定跟踪文件的名字。 建立跟踪模型。 获取模型中的函数、事件列表。 获取模型中的对象列表。 获取模型中的根节点程序名。 获取模型中的调用某程序的程序。 获取模型中的被某程序或语句调用的程序。 SetTraceFileName Profiling BuildModel RoutineList ClassList SystemRoutine IncomingCallList OutgoingCallList Profiling Profiling和ProfileClass Profiling Profiling ProfileRoutine ProfileRoutine和 ProfileLine LineList DestroyModel ProfileRoutine Profiling 按照顺序列出某一程序中的语句及其执行信息。 撤消当前模型。 例如,在通过BuildModel函数建立Call Graph模型后,下面的程序从ProfileRoutine对象中获取所执行的事件、函数信息,并将这些信息显示在一个数据窗口中。

首先建立一个窗口,其中有一个外部数据源的数据窗口,如下图所示:

为窗口中的“RoutineList”按钮的Click事件编写程序:

Profiling lp_model

string pfname

long lmt

ErrorReturn err

//用BuildModel函数建立Call Graph模型

pfname = \

lp_model = CREATE Profiling

lp_model.SetTraceFileName(pfname)

lp_model.BuildModel()

//从所建立的模型中提取跟踪信息

ProfileRoutine lp_list[] //定义一个ProfileRoutine的无界数组对象

err=lp_Model.RoutineList(lp_list[])//将模型中的数据传给ProfileRoutine对象数组

lmt = UpperBound(lp_list)

//在数据窗口中显示数据

string str1,str2,str3,str4,str5,str6

long l

int i

for i = 1 to lmt

str1 = string(lp_list[i].name)

str2 = string(lp_list[i].hitcount)

str3 = string(lp_list[i].absoluteselftime)

str4 = string(lp_list[i].percentselftime)

str5 = string(lp_list[i].AbsoluteTotalTime)

str6 = string(lp_list[i].PercentTotalTime)

l = dw_1.insertrow(0)

dw_1.setitem(l,1,str1)

dw_1.setitem(l,2,str2)

dw_1.setitem(l,3,str3)

dw_1.setitem(l,4,str4)

dw_1.setitem(l,5,str5)

dw_1.setitem(l,6,str6)

next

运行该程序,单击RoutineList按钮,即可在数据窗口中显示所执行的事件、函数信息,如下图所示:

数据窗口中显示了执行程序过程中所发生的事件和执行的函数,以及执行这些过程所需要的时间等信息。例如,从图中提供的信息可以得知执行数据库连接过程需要较长的运行时间。根据这些跟踪信息就可以对应用程序进行逻辑上和性能上的检查。

跟踪文件模型

本篇文章来源与时代朝阳数据库(原晓通数据库)培训部PowerBuilder资料库。

跟踪文件是一种二进制形式的文件,在缺省的情况下,是以PBP为扩展名的文件,其中包含了程序执行过程中的每一项活动的执行时间、调用关系等信息,但保存在跟踪文件中的信息只有被翻译成视图后方可阅读。

注意:由于建立视图时,PowerBuilder不但要读取跟踪文件(PBP文件),而且还需要访问PBL、PBD或EXE文件,因此,建立视图时,应当确保这些文件仍然位于建立跟踪文件时所在的位置,否则,无法建立正确的视图。

建立跟踪文件,首先应当允许对应用程序进行跟踪,然后执行需要跟踪的应用程序,执行结束后,就会生成相应的跟踪文件。收集应用程序的执行信息,建立跟踪文件的方法有两种:

? ?

通过在系统选项画笔(System Option)中进行设置,允许跟踪并生成跟踪文件。 使用跟踪对象和函数,通过编程建立跟踪文件。

这两种方法的适用情形如下表所示:


pb8.0技术(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国电信翼支付客户使用手册

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: