• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

优化你的PowerBuilder程序

发布: 2008-10-14 12:00 | 作者: 不详 | 来源: programfan.com  | 查看: 93次 | 进入软件测试论坛讨论

领测软件测试网

第三种方法:

  dw_1.modify("da_dh.x=18" +&
  "da_dh.y=16" +&
  "da_dh.height=100" +&
  "da_dh.width=200")

  实验证明, 第三种方法的速度是最快的. 但是程序的可读性最差.注意, 在方法一和方法二中, 都使用的 setredraw() 函数以减少屏幕的重绘, 否则, 执行速度将严重下降.

  6. 数据窗口中数据的访问

  在程序中, 经常会需要动态的修改数据窗口中的数据. 对此, PB 提供了多种方法, 各种方法在性能上会有一些差异.

  A. 数据窗口中数据的访问

  目的: 将数据窗口中的电话号码存放在一个数组中.请比较下面两中方法.

  方法一:
  string da_dh[]
  long ll,i
  ll = dw_1.rowcount()
  for i = ll to 1 stet -1
  da_dh[i] = dw_1.getitemstring(i,"dhhm")
  next

  方法二:
  string da_dh[]
  da_dh[] = dw_1.object.dhhm.current

  测试发现, 第二种方法比第一种方法快将近一倍. 数据量越大这种差异越明显.

  B. 数据窗口中数据的修改

  目的: 修改数据窗口中的电话号码列的值.

  请比较下面两中方法.

  方法一:
  dw_1.setitem(i,"dhhm",l_name)

  方法二:
  dw_1.object.name[i] = l_name

  测试发现, 第二种方法比第一种方法快将近一倍. 数据量越大这种差异越明显.

  7. 数据窗口事件对性能的影响

  对于数据窗口控制中经常发生的事件, 应当尽量减少其中的程序代码. 特别是如下事件:
  a. itemchanged
  b. editchanged
  c. itemfocuschanged
  d. pbm_dwnkey
  e. rowfocuschanged
  f. retrieverow

  在这些事件中的任何处理程序, 都会降低应用程序的处理速度. 所以应当尽量减少这些事件中的处理程序, 必要时, 可以考虑只将重要的代码放在这些事件中, 而将剩余的代码放在一个传递的事件中.

  例如,如果需要用到数据窗口的 ROWFOCUSCHANGED 事件,可以为数据窗口定义一用户事件 "UE_RE",而在数据窗口的 ROWFOCUSCHANGED 事件中写如下代码:
  PARENT.postevent("ue_re")

  在 UE_RE 事件中再编写相应的程序代码,如:
  string code
  dw_1.selectrow(0,false)
  dw_1.selectrow(rownum,true)
  code = getitemstring(dw_1,rownum,"dhhm")
  dw_2.retrieve(code)

  另外, 为了获得当前行号,应尽量使用数据窗口的 CURRENTROW 变量,而少用 GETROW() 函数。

  8. 数据窗口的列名称与列编号

  对数据窗口的某列进行访问, 可以采用该列的名称, 也可以使用该列的编号。

  例如:
  采用列编号:
  dw_1.object.data[ll_row,2]
  dw_1.getitemstring(3,2)

  采用列名称表示某列:
  dw_1.object.article_text[ll_row]
  dw_1.getitemstring(3,"dhhm")
  dw_1.setitem(3,"date",1999-03-31)
  ...
 
  对于以上两种方法,如果只进行一次查询,在速度上并没有太大的区别,如果需要循环访问数据窗口上的某一列,则速度上的差异就表现的比较明显,采用第一种方法要快, 但是程序的可读性比较差。但是,在使用函数时(如 GETITEM() 和 setitem() ), 执行速度往往没有很大差别。

  9. 计算域

  数据窗口的计算域会对数据的操作性能产生影响。 如果数据窗口中包含许多复杂的计算域,将严重影响数据窗口的执行速度。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

33/3<123

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网