Donly 发表于 2012-5-31 09:52:02

父事务和子事务的响应时间为什么差别那么大

RT,整个父事务被拆分成好几个子事务,中间不含思考时间,但是测试结果却显示父事务的响应时间并不等于子事务响应时间之和,这是为什么呢?

云层 发表于 2012-5-31 09:54:41

等于就奇怪了,函数自己也会有时间的,哪里有那么精确

Donly 发表于 2012-5-31 10:06:02

回复 2# 云层
这个是,但是lr函数本身应该耗时在毫秒级别的吧?从平均事务响应图中,某个时间点附近子事务的时间比父事务还高,后面一小段时间内父事务的响应时间也没高过这个点,这个又怎么解释呢?

云层 发表于 2012-5-31 10:16:19

给代码给数据。。。。。

Donly 发表于 2012-5-31 10:29:48

本帖最后由 Donly 于 2012-5-31 15:57 编辑

回复 4# 云层
   //点击登录按钮,开始整个登录事务
          lr_start_transaction("LoginIn_Tran");

    //开始提交登录请求子事务
    lr_start_sub_transaction("LoginSubmit_subTran","LoginIn_Tran");
    web_reg_find(
                "Text={Loadtext}",
                "SaveCount=LoginLoad_cnt",
                LAST);

      web_submit_data(......,
                LAST);
    //登录请求子事务结束
      if (atoi(lr_eval_string ("{LoginLoad_cnt}")) > 0)
      {
                lr_end_sub_transaction("LoginSubmit_subTran", LR_PASS);
      }
      else
      {
                lr_end_sub_transaction("LoginSubmit_subTran", LR_FAIL);
                //return(-1);
      }

    //加载进度条子事务
   lr_start_sub_transaction("LoginLoad_subTran","LoginIn_Tran");

   web_reg_find(
                "Text=ticket",
                "SaveCount=ticket_cnt",
                "Search=ALL",
                LAST);

      web_url(".....                LAST);
    //进度条显示子事务结束
      if (atoi(lr_eval_string ("{ticket_cnt}")) > 0)
      {
                lr_end_sub_transaction("LoginLoad_subTran", LR_PASS);
      }
      else
      {
                lr_end_sub_transaction("LoginLoad_subTran", LR_FAIL);
                //return(-1);
      }


      //加载完毕,开始显示首页子事务
      lr_start_sub_transaction("ShowHomePage_subTran","LoginIn_Tran");

      web_reg_find(
                "Text={Portaltext}",
                "SaveCount=Homepage_cnt",
                LAST);
      web_reg_find(
                "Text={loginouttext}",
                "SaveCount=LoginoutButt_cnt",
                LAST);
      web_reg_find(
                "Text={MyPendtext}",
                "SaveCount=MyPend_cnt",
                LAST);
      web_reg_find(
                "Text={Morebutttext}",
                "SaveCount=Morebutt_cnt",
                LAST);
      web_url(".....               
                LAST);
      //首页加载完毕,结束首页加载子事务
      if ((atoi(lr_eval_string ("{Homepage_cnt}")) > 0) &&
                (atoi(lr_eval_string ("{LoginoutButt_cnt}")) > 0) &&
                (atoi(lr_eval_string ("{MyPend_cnt}")) > 0) &&
                (atoi(lr_eval_string ("{Morebutt_cnt}")) > 0))
      {
                lr_end_sub_transaction("ShowHomePage_subTran", LR_PASS);
      }
      else
      {
                lr_end_sub_transaction("ShowHomePage_subTran", LR_FAIL);
                //return(-1);
      }

      //结束父事务
    if ((atoi(lr_eval_string ("{LoginLoad_cnt}")) > 0) &&
                (atoi(lr_eval_string ("{ticket_cnt}")) > 0) &&
                (atoi(lr_eval_string ("{Homepage_cnt}")) > 0) &&
                (atoi(lr_eval_string ("{LoginoutButt_cnt}")) > 0) &&
                (atoi(lr_eval_string ("{MyPend_cnt}")) > 0) &&
                (atoi(lr_eval_string ("{Morebutt_cnt}")) > 0))
      {
      lr_end_transaction("LoginIn_Tran", LR_PASS);
      }
      else
      {
      lr_end_transaction("LoginIn_Tran", LR_FAIL);
               
      }

平均事务响应图:

云层 发表于 2012-5-31 12:13:29

这个应该是取样精度导致的问题,因为算平均时间间隔有影响,你如果导出数据看应该就正确了

Donly 发表于 2012-5-31 15:55:27

回复 6# 云层

嗯,精度是有影响,把时间调成1秒就能看到父事务的一个高点了,不过此前子事务已经有两个高点了,可能中间父事务失败了,所以就少了一个高点吧?
页: [1]
查看完整版本: 父事务和子事务的响应时间为什么差别那么大