lr计算程序执行消耗时间的比较:
去除程序执行的两种方式:
1.通过一个事务:在需要消除的代码段,使用lr_wasted_time(wasteTime);
querySubmit()
{ char newStr4[10000]=""; int num4;//获取fid、roomid的个数 double wasteTime,waste; //定义变量 merc_timer_handle_t timer; lr_vuser_status_message( "当前用户名:%s,迭代次数:%d",lr_eval_string("{fname}"),++iteration ); lr_convert_string_encoding( lr_eval_string("{building}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"UnicodeString" ); //此时building是一个汉字列表的参数,把它转换为utf-8,存入UnicodeString参数中 lr_save_string( lr_eval_string("{UnicodeString}"),"building" ); //把UnicodeString参数的值又覆盖回building参数,前2步相当于完成了building参数的汉字到utf-8的转换 web_convert_param("building","SourceEncoding=PLAIN","TargetEncoding=URL",LAST); //这一步把building参数从utf-8又转换到url编码 lr_convert_string_encoding( lr_eval_string("{gardenid}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"UnicodeString" ); //此时gardenid是一个汉字列表的参数,把它转换为utf-8,存入UnicodeString参数中 lr_save_string( lr_eval_string("{UnicodeString}"),"gardenid" ); //把UnicodeString参数的值又覆盖回gardenid参数,前2步相当于完成了gardenid参数的汉字到utf-8的转换 web_convert_param("gardenid","SourceEncoding=PLAIN","TargetEncoding=URL",LAST); //这一步把gardenid参数从utf-8又转换到url编码 lr_convert_string_encoding( lr_eval_string("{roomNo}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"UnicodeString" ); //此时roomNo是一个汉字列表的参数,把它转换为utf-8,存入UnicodeString参数中 lr_save_string( lr_eval_string("{UnicodeString}"),"roomNo" ); //把UnicodeString参数的值又覆盖回roomNo参数,前2步相当于完成了roomNo参数的汉字到utf-8的转换 web_convert_param("roomNo","SourceEncoding=PLAIN","TargetEncoding=URL",LAST); //这一步把roomNo参数从utf-8又转换到url编码 // lr_output_message("roomNo的Url编码=%s", lr_eval_string("{roomNo}")); web_set_max_html_param_len("1000000"); //设置关联参数接收最大的字节数 web_reg_save_param_ex(
"ParamName=fid4",
"LB=id\":\"",
"RB=\",",
"NotFound=warning",
"Ordinal=All",
SEARCH_FILTERS,
"Scope=Body",
"RequestUrl=*/queryData*",
LAST); web_reg_save_param_ex(
"ParamName=roomid4",
"LB=roomId\":\"",
"RB=\",",
"NotFound=warning",
"Ordinal=All",
SEARCH_FILTERS,
"Scope=Body",
"RequestUrl=*/queryData*",
LAST); lr_rendezvous("设置提交集合点"); lr_start_transaction("查询开始事务"); web_custom_request("queryData_4",
"URL=http://0755.qfang.com/qfang-broker/house/search/queryData",
"Method=POST",
"TargetFrame=",
"Resource=0",
"RecContentType=application/json",
"Referer=http://0755.qfang.com/qfang-broker/house/search",
"Snapshot=t33.inf",
"Mode=HTML",
"EncType=application/x-www-form-urlencoded; charset=UTF-8",
"Body=houseState='RENT_SALE'%2C'RENT'%2C'SALE'%2C'OUTSIDE_SALED'%2C'COMPANY_SALED'%2C'OUTSIDE_RENTED'%2C'COMPANY_RENTED'%2C'STOP'%2C'DATA'&garden='{gardenid}'&building={building}&roomNo={roomNo}&crTypeValue=APARTMENT&subClassType='APARTMENT'&roomPattern='{roomPattern}'&permission=1&orgId={orgid}&searchPage=new&sqlQuery=false&curTab=ALL&changeSearchCondition=true",
LAST); timer=lr_start_timer(); //timer开始:创建计时器,返回值是计时器标志,统计for循环花费的时间 if (strcmp(lr_eval_string("{fid4}")," ")==0)
{
// lr_output_message("该条记录无法匹配到精确的楼盘信息!"); strcpy(newStr4,""); lr_save_string( newStr4,"lastStr4" ); // lr_output_message("newStr4的值:%s", newStr4); }
else
{
for(num4 =1;num4<=atoi(lr_eval_string("{roomid4_count}"));num4++) { sprintf( fidVar4,"{fid4_%d}",num4 ); //将num变量保存到fidVar中, sprintf( fidValue4,"%s",lr_eval_string(fidVar4) ); sprintf( roomidVar4,"{roomid4_%d}",num4 ); //将num变量保存到fidVar中, sprintf( roomidValue4,"%s",lr_eval_string(roomidVar4) ); lr_output_message("fid4_%d的值:%s", num4, fidValue4); lr_output_message("roomid4_%d的值:%s", num4, roomidValue4); strcat( fidValue4,"_" ); strcat( fidValue4,roomidValue4 ); // lr_output_message("%s", fidValue4); if(num4 != atoi(lr_eval_string("{roomid4_count}"))) { strcat( fidValue4,"," ); } strcat( newStr4,fidValue4 ); } lr_save_string( newStr4,"lastStr4" ); // lr_output_message("newStr4的值:%s", newStr4); // lr_output_message("拼接后的整体字符串lastStr4的值:%s", lr_eval_string("{lastStr4}")); } waste = lr_end_timer(timer); //停止timer wasteTime=waste * 1000; lr_wasted_time(wasteTime); web_submit_data("getNewFollows_4",
"Action=http://0755.qfang.com/qfang-broker/house/follow/getNewFollows",
"Method=POST",
"TargetFrame=",
"RecContentType=application/json",
"Referer=http://0755.qfang.com/qfang-broker/house/search",
"Snapshot=t34.inf",
"Mode=HTML",
ITEMDATA,
"Name=roomIds", "Value={lastStr4}", ENDITEM,
LAST); lr_end_transaction("查询开始事务", LR_AUTO); return 0; }
方案二:通过在父事务中插入两个子事务
querySubmit()
{ char newStr4[10000]=""; int num4;//获取fid、roomid的个数 lr_vuser_status_message( "当前用户名:%s,迭代次数:%d",lr_eval_string("{fname}"),++iteration ); lr_convert_string_encoding( lr_eval_string("{building}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"UnicodeString" ); //此时building是一个汉字列表的参数,把它转换为utf-8,存入UnicodeString参数中 lr_save_string( lr_eval_string("{UnicodeString}"),"building" ); //把UnicodeString参数的值又覆盖回building参数,前2步相当于完成了building参数的汉字到utf-8的转换 web_convert_param("building","SourceEncoding=PLAIN","TargetEncoding=URL",LAST); //这一步把building参数从utf-8又转换到url编码 lr_convert_string_encoding( lr_eval_string("{gardenid}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"UnicodeString" ); //此时gardenid是一个汉字列表的参数,把它转换为utf-8,存入UnicodeString参数中 lr_save_string( lr_eval_string("{UnicodeString}"),"gardenid" ); //把UnicodeString参数的值又覆盖回gardenid参数,前2步相当于完成了gardenid参数的汉字到utf-8的转换 web_convert_param("gardenid","SourceEncoding=PLAIN","TargetEncoding=URL",LAST); //这一步把gardenid参数从utf-8又转换到url编码 lr_convert_string_encoding( lr_eval_string("{roomNo}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"UnicodeString" ); //此时roomNo是一个汉字列表的参数,把它转换为utf-8,存入UnicodeString参数中 lr_save_string( lr_eval_string("{UnicodeString}"),"roomNo" ); //把UnicodeString参数的值又覆盖回roomNo参数,前2步相当于完成了roomNo参数的汉字到utf-8的转换 web_convert_param("roomNo","SourceEncoding=PLAIN","TargetEncoding=URL",LAST); //这一步把roomNo参数从utf-8又转换到url编码 web_set_max_html_param_len("1000000"); //设置关联参数接收最大的字节数 web_reg_save_param_ex(
"ParamName=fid4",
"LB=id\":\"",
"RB=\",",
"NotFound=warning",
"Ordinal=All",
SEARCH_FILTERS,
"Scope=Body",
"RequestUrl=*/queryData*",
LAST); web_reg_save_param_ex(
"ParamName=roomid4",
"LB=roomId\":\"",
"RB=\",",
"NotFound=warning",
"Ordinal=All",
SEARCH_FILTERS,
"Scope=Body",
"RequestUrl=*/queryData*",
LAST); // lr_think_time(16); lr_rendezvous("设置提交集合点"); lr_start_transaction("查询开始事务"); lr_start_sub_transaction("queryDate","查询开始事务"); web_custom_request("queryData_4",
"URL=http://0755.qfang.com/qfang-broker/house/search/queryData",
"Method=POST",
"TargetFrame=",
"Resource=0",
"RecContentType=application/json",
"Referer=http://0755.qfang.com/qfang-broker/house/search",
"Snapshot=t33.inf",
"Mode=HTML",
"EncType=application/x-www-form-urlencoded; charset=UTF-8",
"Body=houseState='RENT_SALE'%2C'RENT'%2C'SALE'%2C'OUTSIDE_SALED'%2C'COMPANY_SALED'%2C'OUTSIDE_RENTED'%2C'COMPANY_RENTED'%2C'STOP'%2C'DATA'&garden='{gardenid}'&building={building}&roomNo={roomNo}&crTypeValue=APARTMENT&subClassType='APARTMENT'&roomPattern='{roomPattern}'&permission=1&orgId={orgid}&searchPage=new&sqlQuery=false&curTab=ALL&changeSearchCondition=true",
LAST); lr_end_sub_transaction("queryDate",LR_AUTO); if (strcmp(lr_eval_string("{fid4}")," ")==0)
{
// lr_output_message("该条记录无法匹配到精确的楼盘信息!"); strcpy(newStr4,""); lr_save_string( newStr4,"lastStr4" ); }
else
{
for(num4 =1;num4<=atoi(lr_eval_string("{roomid4_count}"));num4++) { sprintf( fidVar4,"{fid4_%d}",num4 ); //将num变量保存到fidVar中, sprintf( fidValue4,"%s",lr_eval_string(fidVar4) ); sprintf( roomidVar4,"{roomid4_%d}",num4 ); //将num变量保存到fidVar中, sprintf( roomidValue4,"%s",lr_eval_string(roomidVar4) ); lr_output_message("fid4_%d的值:%s", num4, fidValue4); lr_output_message("roomid4_%d的值:%s", num4, roomidValue4); strcat( fidValue4,"_" ); strcat( fidValue4,roomidValue4 ); if(num4 != atoi(lr_eval_string("{roomid4_count}"))) { strcat( fidValue4,"," ); } strcat( newStr4,fidValue4 ); } lr_save_string( newStr4,"lastStr4" ); } lr_start_sub_transaction("getNewFollows","查询开始事务"); web_submit_data("getNewFollows_4",
"Action=http://0755.qfang.com/qfang-broker/house/follow/getNewFollows",
"Method=POST",
"TargetFrame=",
"RecContentType=application/json",
"Referer=http://0755.qfang.com/qfang-broker/house/search",
"Snapshot=t34.inf",
"Mode=HTML",
ITEMDATA,
"Name=roomIds", "Value={lastStr4}", ENDITEM,
LAST); lr_end_sub_transaction("getNewFollows",LR_AUTO); lr_end_transaction("查询开始事务", LR_AUTO); return 0; }
方法三:不添加任何消除时间方法:
querySubmit()
{ char newStr4[10000]=""; int num4;//获取fid、roomid的个数 lr_vuser_status_message( "当前用户名:%s,迭代次数:%d",lr_eval_string("{fname}"),++iteration ); lr_convert_string_encoding( lr_eval_string("{building}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"UnicodeString" ); //此时building是一个汉字列表的参数,把它转换为utf-8,存入UnicodeString参数中 lr_save_string( lr_eval_string("{UnicodeString}"),"building" ); //把UnicodeString参数的值又覆盖回building参数,前2步相当于完成了building参数的汉字到utf-8的转换 web_convert_param("building","SourceEncoding=PLAIN","TargetEncoding=URL",LAST); //这一步把building参数从utf-8又转换到url编码 lr_convert_string_encoding( lr_eval_string("{gardenid}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"UnicodeString" ); //此时gardenid是一个汉字列表的参数,把它转换为utf-8,存入UnicodeString参数中 lr_save_string( lr_eval_string("{UnicodeString}"),"gardenid" ); //把UnicodeString参数的值又覆盖回gardenid参数,前2步相当于完成了gardenid参数的汉字到utf-8的转换 web_convert_param("gardenid","SourceEncoding=PLAIN","TargetEncoding=URL",LAST); //这一步把gardenid参数从utf-8又转换到url编码 lr_convert_string_encoding( lr_eval_string("{roomNo}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"UnicodeString" ); //此时roomNo是一个汉字列表的参数,把它转换为utf-8,存入UnicodeString参数中 lr_save_string( lr_eval_string("{UnicodeString}"),"roomNo" ); //把UnicodeString参数的值又覆盖回roomNo参数,前2步相当于完成了roomNo参数的汉字到utf-8的转换 web_convert_param("roomNo","SourceEncoding=PLAIN","TargetEncoding=URL",LAST); //这一步把roomNo参数从utf-8又转换到url编码 web_set_max_html_param_len("1000000"); //设置关联参数接收最大的字节数 web_reg_save_param_ex(
"ParamName=fid4",
"LB=id\":\"",
"RB=\",",
"NotFound=warning",
"Ordinal=All",
SEARCH_FILTERS,
"Scope=Body",
"RequestUrl=*/queryData*",
LAST); web_reg_save_param_ex(
"ParamName=roomid4",
"LB=roomId\":\"",
"RB=\",",
"NotFound=warning",
"Ordinal=All",
SEARCH_FILTERS,
"Scope=Body",
"RequestUrl=*/queryData*",
LAST); // lr_think_time(16); lr_rendezvous("设置提交集合点"); lr_start_transaction("查询开始事务"); web_custom_request("queryData_4",
"URL=http://0755.qfang.com/qfang-broker/house/search/queryData",
"Method=POST",
"TargetFrame=",
"Resource=0",
"RecContentType=application/json",
"Referer=http://0755.qfang.com/qfang-broker/house/search",
"Snapshot=t33.inf",
"Mode=HTML",
"EncType=application/x-www-form-urlencoded; charset=UTF-8",
"Body=houseState='RENT_SALE'%2C'RENT'%2C'SALE'%2C'OUTSIDE_SALED'%2C'COMPANY_SALED'%2C'OUTSIDE_RENTED'%2C'COMPANY_RENTED'%2C'STOP'%2C'DATA'&garden='{gardenid}'&building={building}&roomNo={roomNo}&crTypeValue=APARTMENT&subClassType='APARTMENT'&roomPattern='{roomPattern}'&permission=1&orgId={orgid}&searchPage=new&sqlQuery=false&curTab=ALL&changeSearchCondition=true",
LAST); if (strcmp(lr_eval_string("{fid4}")," ")==0)
{
// lr_output_message("该条记录无法匹配到精确的楼盘信息!"); strcpy(newStr4,""); lr_save_string( newStr4,"lastStr4" ); }
else
{
for(num4 =1;num4<=atoi(lr_eval_string("{roomid4_count}"));num4++) { sprintf( fidVar4,"{fid4_%d}",num4 ); //将num变量保存到fidVar中, sprintf( fidValue4,"%s",lr_eval_string(fidVar4) ); sprintf( roomidVar4,"{roomid4_%d}",num4 ); //将num变量保存到fidVar中, sprintf( roomidValue4,"%s",lr_eval_string(roomidVar4) ); lr_output_message("fid4_%d的值:%s", num4, fidValue4); lr_output_message("roomid4_%d的值:%s", num4, roomidValue4); strcat( fidValue4,"_" ); strcat( fidValue4,roomidValue4 ); if(num4 != atoi(lr_eval_string("{roomid4_count}"))) { strcat( fidValue4,"," ); } strcat( newStr4,fidValue4 ); } lr_save_string( newStr4,"lastStr4" ); } web_submit_data("getNewFollows_4",
"Action=http://0755.qfang.com/qfang-broker/house/follow/getNewFollows",
"Method=POST",
"TargetFrame=",
"RecContentType=application/json",
"Referer=http://0755.qfang.com/qfang-broker/house/search",
"Snapshot=t34.inf",
"Mode=HTML",
ITEMDATA,
"Name=roomIds", "Value={lastStr4}", ENDITEM,
LAST); lr_end_transaction("查询开始事务", LR_AUTO); return 0; }
lr计算程序执行消耗时间的比较:的更多相关文章
- golang 如何查看程序执行消耗时间
写代码过程中,有时需要分析代码块的时间消耗. 本文介绍使用time包中的Since函数查看程序执行时间. package main import ( "fmt" "tim ...
- MSSQL的SQL语句独立执行消耗与线上执行消耗差异
环境: SQL Server 2012 疑问:同样的一条语句,使用Profile跟踪出来的消耗与单独拿出来执行的消耗存在非常大的差距 语句如下: declare @str nvarchar(max) ...
- [fw]Linux系统使用time计算命令执行的时间
Linux系统使用time计算命令执行的时间 当测试一个程序或比较不同算法时,执行时间是非常重要的,一个好的算法应该是用时最短的.所有类UNIX系统都包含time命令,使用这个命令可以统计时间消耗.例 ...
- MySql 简单统计查询消耗时间脚本
MySql 简单统计查询消耗时间脚本 by:授客 QQ:1033553122 drop procedure if exists selectTime; delimiter; create proced ...
- C# .Net计算函数执行的时间
C#计算函数执行的时间 protected void StopwatchTest() { System.Diagnostics.Stopwatch stopwatch = new System.Dia ...
- 在Linux下如何限制命令执行的时间?
在Linux下如何限制命令执行的时间?两种解决方法,如下: 1: Linux命令——timeout 运行指定的命令,如果在指定时间后仍在运行,则杀死该进程.用来控制程序运行的时间. 2: comman ...
- sql语句执行的时间
统计mysql里每条SQL语句执行的时间 收藏 CrazyHarry 发表于 2年前 阅读 3785 收藏 8 点赞 3 评论 3 Google.Github 双重认证前端课程,独家硅谷内容,每周直播 ...
- 如何使用FF的Firebug组件中的net工具查看页面元素加载消耗时间
1.安装FF的Firebug组件:点击FF的Tools的Add-ons菜单,输入Firebug关键字,并选择合适的版本Install. 2.安装完毕后地址栏右边会出现一个小虫图标,右边还有一个下拉箭头 ...
- PHP获取PHP执行的时间
php获取PHP执行的时间 <pre> //程序运行时间 $starttime = explode(' ',microtime()); //代码区域 //程序运行时间 $endtime = ...
随机推荐
- 2115: [Wc2011] Xor (线性基+dfs)
2115: [Wc2011] Xor Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 5714 Solved: 2420 题目链接:https://w ...
- [zabbix]zabbix分区表操作步骤
Q&A: 1.mul key: . 如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, 或者是一个非唯一的复合索引的非前导列 . 如果Key是PRI, 那么该列是主键的组成部分 . ...
- [ubuntu]对指定区域截图
ctrl+shift 鼠标变成正十字. 按住右键就可以随意截图了. 设置方法: 打开系统设置面板 system settings --> keyboard --> shortcuts - ...
- ASP.Net初级学习一(基本语句入门)
<body > <form method="post" action="program.ashx"> <input type=&q ...
- tomcat 访问400 的一种情况
tomcat 高版本对访问url做了较高的校验,如果url中包含特殊字符,tomcat会自动拦截,返回400错误.如果要包含特殊字符,需要事先进行转译. 我原来用的apache-tomcat-6.0. ...
- 深入探索C++对象模型(二)
构造函数语义学(The Semantics of Constructors) Default Constructor的构造操作 对于class X,如果没有任何user-declared constr ...
- [USACO13NOV] Pogo-Cow
https://www.luogu.org/problem/show?pid=3089 题目描述 In an ill-conceived attempt to enhance the mobility ...
- Spring Web 项目Junit测试报错问题
测试对象是Web项目的Service类,参照网上查到的资料,按如下方式执行时报错, //使用junit4进行单元测试 @RunWith(SpringJUnit4ClassRunner.class) / ...
- 【uva11987】带删除的并查集
题意:初始有N个集合,分别为 1 ,2 ,3 .....n.有三种操件1 p q 合并元素p和q的集合2 p q 把p元素移到q集合中3 p 输出p元素集合的个数及全部元素的和. 题解: 并查集.只是 ...
- 【NOIP】2013 花匠
[算法]贪心 [题解] DP可以f[i][0],f[i][1]表示选了i分别满足条件AB的答案,其优化也是利用了下面的性质,不多赘述. 想象数列的波动,最大值一定是取每个波峰和每个波谷,那么只要O(n ...