IBM大型机论坛索引
 
登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答 寄存器
 

计算特定的时间戳差异


IBM大型机论坛 -> 清单& REXX
发表新话题   回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
d

新的用户


已加入:2008年7月21日
帖子:40
地点:浦那

发布发表:2010年3月29日星期一9:52 pm
引用回复

我的交易记录如下

短暂的超时行为外型
t1 22.23.12.9 22.23.14.4 pay1
t2 22.23.20.5 22.23.23.8 pay1
t3 23.24.12.6 22.25.13.7 pay1
t4 23.25.22.9 22.26.15.6 pay1

.. ... ... ...

这样,我在文件中就有数十万笔交易,
intime和outime的格式为hh:mm:ss:ms

现在使用rexx程序,我想计算以下两个数字

时间段的开始,每10秒平均没有交易
(秒)(否)
10 ----
20 ----
30 ----
40-
50 ---
1.0-
1.10(分秒)-
1.20-


时间段的开始每次增加到10秒,我想计算其每10秒值的平均交易次数。即---值

通过从超时中减去超时,我将得到特定事务​​处理所花费的时间

谁能告诉我将其存档的逻辑?

谢谢
回到顶部
查看用户资料 发送私信
dbzTHEdinosauer

全球主持人


已加入:2006年10月20日
帖子:6967
位置:瓷宝座

发布发表:2010年3月29日星期一10:23 pm
引用回复

这个线程与 ibmmainframes.com/viewtopic.php?t=43895
回到顶部
查看用户资料 发送私信
佩德罗

全球主持人


已加入:2006年9月1日
帖子:2214
地点:硅谷

发布发表:2010年3月30日,星期二,凌晨2:12
引用回复

通过对每个时间间隔的记录进行计数,将所有计数求和,然后除以时间间隔的总数,即可得出平均值。

也许您应该在数学帮助论坛中发布
回到顶部
查看用户资料 发送私信
d

新的用户


已加入:2008年7月21日
帖子:40
地点:浦那

发布发表:2010年3月30日,星期二,7:27 pm
引用回复

我已经尝试了逻辑,但它给了我错误的数据

码:
"execio * diskr恢复(finis stem in_rept."                       
                                                                     
我= 1到in_rept.0                                                 
   解析var in_rept.i l1','l2','l3','l4','l5','l6','l7','
  paytype=strip(l12) 
                                               
如果pos('XXXXX',paytype) = 0 then do                           
  intime=strip(l2)                                                   
  outime=strip(l3)                                                   
 解析var intime hh':' mm ':' ss '.' ms                           
  Ihh = hh*3600                                                     
  Imm = mm*60                                                       
  Iss = ss                                                           
  Ims = ms/100                                                       
 tot_intime = Ihh + Imm + Iss + Ims                                 
 解析var outime hh':' mm ':' ss '.' ms                           
  Ohh = hh*3600                                                     
  Omm = mm*60                                                       
  Oss = ss                                                           
  Oms = ms/100                                                       
 tot_outime = Ohh + Omm + Oss + Oms                 
 tot_tran_time = tot_outime-tot_intime             
 prv_tran_time.i = tot_tran_time     
               
  if tot_tran_time >= 10.00 then do                     
     如果是prv_tran_time.i-1< 10.00 then do               
       tran_cnt = tran_cnt + 1                           
       tot_tran_time = tot_tran_time + prv_tran_time.i-1
       tran_cnt = 10 * tran_cnt / tot_tran_time             
       说“ 10秒间隔内没有反式:'tran_cnt   
     end                                               
     else do                                           
       tran_cnt = tran_cnt + 1                           
       说“ 10秒间隔内没有反式:'tran_cnt     
     end;                                               
     tran_cnt =0                                       
  结束;                                                 
  否则做                                               
     如果超出标志='是' then do                       
       sum_time = sum_time + tot_tran_time + pen_tran_time
        exceeds_flag ='no'                                 
     end                                                 
     else do                                             
       sum_time = sum_time + tot_tran_time               
     end                                                 
                                                     
   if sum_time <= 10.00 then do                         
     tran_cnt = tran_cnt + 1                           
   end;                                                 
   if sum_time > 10.00 then do                         
     sum_time = sum_time-tot_tran_time               
   if sum_time  <= 10.00 then do                     
     pen_tran_time = tot_tran_time                 
      exceeds_flag ='yes'                           
   end                                               
                                                       
                                                         
 如果sum_time = 10.00 | beyond_flag ='是',然后执行         
     如果超出标志='是' then do                         
       tran_cnt = tran_cnt-1                             
     end                                                   
     fil_cnt = fil_cnt + 1                                 
     fil_rec.fil_cnt = tran_cnt                             
                                                         
     说“ 10秒间隔内没有反式:'tran_cnt         
     如果超出标志='是'  then tran_cnt  = 1             
                                                         
     tran_cnt  = 0                                         
     sum_time  = 0                                         
  结束;   
   end; 
     end;
 end; 
编码

如前所述,该文件正在进行事务处理。逻辑变得非常复杂,它给了我错误的数据。你能帮忙吗
您能否建议任何更简单的逻辑或尝试纠正以上问题

谢谢,
回到顶部
查看用户资料 发送私信
佩德罗

全球主持人


已加入:2006年9月1日
帖子:2214
地点:硅谷

发布发表:2010年3月30日,星期二,10:28 pm
引用回复

您的代码缺少一些注释。

您的结果看起来如何?

您最初的问题有些复杂,因此实现的逻辑也必须有些复杂。
回到顶部
查看用户资料 发送私信
d

新的用户


已加入:2008年7月21日
帖子:40
地点:浦那

发布发表:2010年3月31日,星期三12:13 pm
引用回复

我正在尝试计算为belwo

说1st trans花了0.79秒
第2花了2.3秒
3耗时2.5秒
第4耗时5秒进行处理

我正试图将这些值相加并与10秒进行比较,并在那10秒内不计算任何交易,但是问题来了,因为它们的总和始终不能等于10,可能是10.2,可能是12,5

因此,如何处理该问题,并假设仅单个事务处理需要10秒钟以上(例如22秒钟),然后如何处理此情况

请建议...有一些漂亮的逻辑
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2010年3月31日,星期三7:25 pm
引用回复

您好,

引用:
试图添加这些值并与10秒进行比较,并在那10秒内不计算任何交易,但是问题来了,因为它们的总和始终不能等于10,可能是10.2,可能是12,5
请澄清。 。 。

我(一个人)不明白这是在告诉我什么。 。 。 icon_confused.gif
回到顶部
查看用户资料 发送私信
佩德罗

全球主持人


已加入:2006年9月1日
帖子:2214
地点:硅谷

发布发表:2010年3月31日,星期三7:45 pm
引用回复

我也不确定您要做什么...您说得不好。

但是我得到的印象是您担心交易的完成,但是如果您只担心到达率,那会简单得多。
回到顶部
查看用户资料 发送私信
d

新的用户


已加入:2008年7月21日
帖子:40
地点:浦那

发布发表:2010年3月31日,星期三,晚上8:59
引用回复

正如我所说的,我有交易文件作为belwo

兰西德·timetime主题转录本
t1 22.23.12.9 22.23.14.4 pay1
t2 22.23.20.5 22.23.23.8 pay1
t3 23.24.12.6 22.25.13.7 pay1
t4 23.25.22.9 22.26.15.6 pay1

文件中有大约50000条记录。我需要做的是
计算每10秒完成的交易数
交易完成时间不过是超时时间

说第一次交易花费2秒(即outime -intime = 2sec),第二次花费3秒,第三次花费5秒

这意味着在开始的10秒钟内,没有事务是3(b'cz时间2sec + 3 sec + 5 sec = 10sec),所以这3是我的第一个输出

现在,同样,在接下来的10秒内,我们无需计算已执行的交易

然后再过10秒钟,这将持续到文件结束

问题是交易花费的时间可能是小数,例如0.79,0.20
所以当我尝试将所有这些总和相匹配是否等于10秒时,
它永远不会满足,并且在某些情况下,事务处理所花费的时间可能会比10秒要长。。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2010年3月31日,星期三9:28 pm
引用回复

您好,

在rexx中这样做有商业上的原因吗?

这是相当简单的cobol代码。 。 。

引用:
这需要以某种方式小心。
这需要有关如何处理的特定规则。 。 。您必须制定/发布规则。我怀疑会有很多“溢出” /“重叠”。 。 。
回到顶部
查看用户资料 发送私信
佩德罗

全球主持人


已加入:2006年9月1日
帖子:2214
地点:硅谷

发布发表:2010年3月31日,星期三9:38 pm
引用回复

你要:
引用:
我需要做的是计算每10秒完成的交易数量

但是您提出的问题与在同一时间间隔内开始和完成有关。如果这确实是您想要的,则必须忽略耗时超过10秒的事务(无法使用您声明的规则对它们进行分类)。

如果您不能忽略记录,则可以尝试确定使用了大部分时间的间隔是10秒。鉴于这种:

t5 23.25.25.9 22.26.30.6 pay1

我想说20秒的间隔中发生了4.1秒,而30的间隔中发生了0.6秒,因此此特定交易将添加到20的计数中。

注意:您提供的记录表与您对时间间隔的书面描述不符。请在示例中保持一致。

您的描述的一部分希望总结时间,但是我认为您不需要总结时间。您正在忽略空闲时间的间隔。您只需要知道事务在哪个间隔中完成,并在该间隔的总数中加1即可。
回到顶部
查看用户资料 发送私信
达夫波塞兰

活跃成员


加入时间:2006年12月1日
职位:747
所在地:宾夕法尼亚州

发布发表:2010年3月31日,星期三9:56 pm
引用回复

在我看来,您正在使这一过程变得更加复杂。

由于时间的唯一目的是计算每次交易的经过时间,因此请尝试此操作。

将交易数量和总经过时间相加。

平均时间= tot_time / tot_trans

Avg_per_10sec = 10 /平均时间

尝试将其分成10秒钟的间隔是完全浪费的精力。

让我们尝试一个例子:

t1 5秒
t2 2
t3 2
t4 1
前10秒= 4笔交易

t5 6
t6 4
接下来的10秒= 2笔交易

2组10秒的平均值= 3个事务

整体平均值:
20秒/ 6笔交易=每笔交易3.33秒
10 / 3.33 =每10秒3笔交易

完全一样,而且容易得多。
回到顶部
查看用户资料 发送私信
佩德罗

全球主持人


已加入:2006年9月1日
帖子:2214
地点:硅谷

发布发表:2010年4月1日星期四凌晨2:35
引用回复

戴夫,您对问题的理解与我不同。我认为OP需要澄清更多他正在尝试做的事情。

我的理解是,这与将经过的时间加起来直到十秒无关,而是关于在一定间隔内有多少笔交易。

我想我正在考虑现实世界中的情况,其中可能有多个事务同时运行,并且开始和停止时间重叠。当没有任何运行时,也会出现间隙。

顺便说一句,我认为间隔太短了。您会看到性能测量单位为trx /分钟或trx /小时,但从未见过trx / 10secs。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2010年4月1日,星期四,凌晨3:18
引用回复

您好,

可能是该组事务的SLA为10秒,目标是确定满足SLA的事务百分比。 。 。

我还没有看到有人尝试“按系列”计算这类数字(这不会很困难)。我使用的大多数/所有系统都具有数十至数千个并发运行的事务,并且大多数重叠可以进行不同的计算。

可能我们会收到其他信息,可以用来帮助您。 。 。
回到顶部
查看用户资料 发送私信
d

新的用户


已加入:2008年7月21日
帖子:40
地点:浦那

发布发表:2010年4月4日,星期日,晚上8:15
引用回复

没错,迪克,我们需要根据通过上述计算得出的图形来绘制图形。根据图表,我们将评估性能和所有方面

现在使其更简单,我们需要计算以下内容

需要计算1分钟内未执行的交易数量
所以开始将是从1分钟开始

1分钟tpm(每分钟的交易量)

下午2分钟

下午3分钟

下午4分钟

下午5分钟

下午6分钟

等等


我需要计算的tpm值..请尽快提供逻辑帮助

注意..事务完成时间不过是我前面提到的超时时间


提前致谢
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2010年4月4日,星期日,晚上9:26
引用回复

您好,

建议您创建一个要跟踪的时间间隔的数组(即1分钟,2分钟... n分钟和> max).

确定每个事务的经过时间(超时-超时),然后添加到适当的数组条目中。如果经过的时间是>最大,添加到“超过最大”条目。这些“超最大”事务子可能需要进行其他调查才能确定为什么要花费过多的时间。
回到顶部
查看用户资料 发送私信
姆巴布

活跃用户


已加入:2008年8月3日
帖子:401
地点:孟买

发布发表:2010年4月4日,星期日,晚上10:41
引用回复

我也没问题。

您假设对“每分钟交易次数”进行了一些定义,但我们不知道您的描述意味着什么。

每分钟的运行时间定义为“每分钟”吗?或者是一天中的某个时间,例如18:59和19:00之间?

“交易”是在该时间间隔内完成的交易数还是实际运行的交易数(包括跨越时间间隔的交易)?

我不明白在多任务系统中同时运行多个事务的情况下,运行事务所花费的时间(超时)将如何影响每分钟的事务。

暂时忘记实施: 您要解决的确切问题是什么?

(还请客气:请检查您的帖子中的基本内容,例如拼写,并且不要使用聊天快捷方式……与您提出问题相比,人们在寻找答案时不会付出更多的努力)。
回到顶部
查看用户资料 发送私信
马索

REXX主持人


已加入:2006年3月13日
帖子:1348
地点:以色列

发布发表:2010年4月4日,星期日,晚上11:02
引用回复

d,
我已经读过该线程3次了,但我仍然不明白您的要求是什么...

d写道:
说1st trans花了0.79秒
第2花了2.3秒
3耗时2.5秒
第4耗时5秒进行处理

我想将这些值相加并与10秒进行比较,并在那10秒内不计算任何交易


d写道:
说第一次交易花费2秒(即outime -intime = 2sec),第二次花费3秒,第三次花费5秒

这意味着在开始的10秒钟内,没有事务是3(b'cz时间2sec + 3 sec + 5 sec = 10sec),所以这3是我的第一个输出

现在,同样,在接下来的10秒内,我们无需计算已执行的交易

然后再过10秒钟,这将持续到文件结束


如果不考虑“ intime”,如何添加这些值。
以您的示例为例,您将在10秒内获得3个反(t1 + t2 + t3):
您实际上是在t1的开始到t3的结束之间经过了2分钟以上的时间,却在不到10秒的时间内计算了3个trans。


d写道:
时间段的开始每次增加到10秒,我想计算其每10秒值的平均交易次数。即---值
d写道:
需要计算1分钟内未执行的交易数量
该请求与事务持续时间无关,您只需要使用“ intime”。
回到顶部
查看用户资料 发送私信
CICS家伙

高级会员


已加入:2007年7月18日
帖子:2146
位置:在我的咖啡桌上

发布发表:2010年4月4日,星期日,晚上11:18
引用回复

d,

让我看看我是否理解...

我已为某笔特定交易收取X秒钟的时间。
我想知道每十秒钟的充电时间平均执行多少笔交易。
我想看看从最初的10秒间隔到最后的10秒间隔如何变化。

我靠近吗?

我实际上更希望一天中每隔5或10分钟的交易平均耗费时间...。
回到顶部
查看用户资料 发送私信
佩德罗

全球主持人


已加入:2006年9月1日
帖子:2214
地点:硅谷

发布发表:2010年4月5日星期一1点20分
引用回复

普迪加德

请给我们20条真实记录,并向我们展示您手动对它们执行的数学运算以获得TPM并向我们显示您获得的结果。然后,也许我们可以帮助您编写一个相同的程序。

==========

少数人说没有理由计算超时时间...仅使用超时时间或超时时间即可。

只需截断该时间即可为您提供间隔时间。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2010年4月5日星期一4:06 am
引用回复

你好,pdighade,

引用:
我需要计算的tpm值..请尽快提供逻辑帮助
您坚持使用非标准术语,然后尽快使用。 。 。 icon_sad.gif

请考虑,如果我们中最好的两个人在现场并且可以实施需求定义,那么我们将无能为力。 。 。到目前为止,尚无可用的描述/定义(“ tpm”无法有效通信)。您认为存在一些容易实现的事情(并且很可能容易获得),并且最有可能是我们许多人已经通过多种方式完成的事情。对您来说,要求是显而易见的。不幸的是,尚不清楚人民是否会提供帮助。

根据Pedro的要求,您需要从20个真实记录中发布所需的“输出”。确保这些样本记录涵盖您要报告的所有案例。
回到顶部
查看用户资料 发送私信
佩德罗

全球主持人


已加入:2006年9月1日
帖子:2214
地点:硅谷

发布发表:2010年4月5日星期一7:47 am
引用回复

你说这是用于绩效评估...

我想知道为什么您要以10秒甚至1分钟的间隔进行检查。假设您一整天都表现良好,但实际上只有10秒的间隔就表现不佳。你会怎么做?我认为您不能这么快地调整系统。
回到顶部
查看用户资料 发送私信
罗伯特·桑普

全球主持人


已加入:2008年6月6日
帖子:8569
地点:美国爱荷华州迪比克

发布发表:2010年4月5日星期一8:39上午
引用回复

您声称自己正在执行绩效管理,但是您似乎在以行业不标准的方式来做事情。您是否看过计算机测量小组提供的有关行业实践的指南?您具有什么计算机性能评估背景?您是否考虑过以站点的WLM数据为起点,而不是创建自己的统计信息从而重新发明轮子?

使用10秒间隔是很荒谬的-每天为您提供8,640个间隔,或每个班次2,880个。您无法在该数量的间隔上有意义地进行任何类型的调整。 15分钟或30分钟的间隔更常用,并且使用该间隔大小至少可以进行有意义的调整。
回到顶部
查看用户资料 发送私信
d

新的用户


已加入:2008年7月21日
帖子:40
地点:浦那

发布发表:2010年4月5日星期一6:22 pm
引用回复

罗伯特

是的,现在我尝试间隔30分钟。并通知您是否发生任何问题
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2010年4月5日星期一7:58 pm
引用回复

您好,

间隔的长度只是等式的一部分。即使间隔为10分钟,也会有成千上万的“间隔重叠”。

您仍然需要确定“规则”并将其发布。

如前所述,我相信您要做的并不困难。 。 。只需明确说明即可。

现在肯定是从一组实际的样本数据中生成一些有代表性的“输出”的好时机。
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> 清单& REXX

 


类似主题
话题 论坛 回覆
没有新帖 用时间戳计算 PL / I和组装商 19
没有新帖 删除基于S ...的重复记录 DFSORT / ICETOOL 4
没有新帖 CEE3250C和CEE3204S之间的区别 COBOL程式设计 2
没有新帖 使用TXT2PDF为特定线条着色 所有其他大型机主题 3
没有新帖 Z / VSE JCL的TCP / IP中的时间戳 JCL和VSAM 0
搜索我们的论坛:


回到顶部