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 = ...
随机推荐
- mysql 常用总结
centos7 安装mysql 数据库安装参考:http://www.cnblogs.com/longrui/p/6071581.htmlhttps://www.cnblogs.com/yoursou ...
- Samba共享传输大文件(ex:1G)失败的问题
1:问题描述 1.1 基本信息 遇见这样一个bug,路由器有USB share的功能,可将U盘内的文件通过samba和LAN端PC机中文件进行共享,测试发现小文件可正常共享,一旦文件大了(比如1G左右 ...
- stout代码分析之二:None类
stout库中为了避免使用NULL带来的风险,统一用None表示空. None类的实现方式如下: struct None {}; 奇怪的是, Nothing类实现方式与None一模一样..让人怀疑作者 ...
- 在IAR使用FreeRTOS出现Error[Pa045]: function "XXX" has no prototype
FreeRTOS官方例程中设置了需要“Require prototype”,所以每个函数(除了main函数)都需要函数声明,其中对于无形参的函数声明要加void,比如void led_init(voi ...
- JavaScript设计模式学习之单例模式
一.单例模式介绍 单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例类的特殊类.通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问, ...
- web.xml中出现<servlet-name>default</servlet-name>是什么意思?
转载自:http://blog.csdn.net/hello5orld/article/details/9407905 在web.xml文件中经常看到这样的配置<servlet-name> ...
- 动态规划小结 - 二维动态规划 - 时间复杂度 O(n*n)的棋盘型,题 [LeetCode] Minimum Path Sum,Unique Paths II,Edit Distance
引言 二维动态规划中最常见的是棋盘型二维动态规划. 即 func(i, j) 往往只和 func(i-1, j-1), func(i-1, j) 以及 func(i, j-1) 有关 这种情况下,时间 ...
- 图论:Prufer编码-Cayley定理
BZOJ1430:运用Cayley定理解决树的形态统计问题 由Prufer编码可以引申出来一个定理:Cayley 内容是不同的n结点标号的树的数量为n^(n-2) 换一种说法就是一棵无根树,当知道结点 ...
- Scala环境安装设置
Scala语言可以安装在任何类UNIX或Windows系统.要安装Scala,必须先安装Java1.5或更高版本安装在计算机上. Windows上安装Scala: 步骤(1):JAVA设置: 首先,必 ...
- Apache 文件服务器
1.安装apache服务器yum install httpd 2.启动httpd服务service httpd start 3.查看httpd服务器的版本httpd -v 4.修改访问端口和文件路径, ...