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

删除DISPLAY语句的好处


IBM大型机论坛 -> COBOL程式设计
发表新话题   回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
mkk157

活跃用户


加入时间:2006年5月17日
帖子:310

发布发表:2015年8月13日(星期四)下午12:38
引用回复

大家好,

我完全同意DISPLAY语句在发生故障的调试中非常有帮助。但是,对于从VSAM主文件读取的每条记录,都保留DISPLAY语句不是一个好习惯。

我的程序之一中有一个DISPLAY语句,该语句被处理250,000次,每次都在SYSOUT上打印值。日常工作使用的程序。

在使用和不使用DISPLAY语句的情况下,运行程序的CPU使用率差异不大。

就节省成本而言,我还能获得什么其他好处?
当程序在SYSOUT上显示不必要的信息时,该信息传播了250,000行,当我删除DISPLAYS时,将节省一些空间。怎么计算呢?

编号国际化
回到顶部
查看用户资料 发送私信
加里·卡罗尔

高级会员


加入时间:2006年5月8日
职位:1100
所在地:爱尔兰都柏林

发布发表于:2015年8月13日,星期四下午1:02
引用回复

好处是节省线轴空间。

要查看节省的空间,也许尝试将SYSOUT定向到数据集并查看使用了多少空间-您必须允许将任何非DISPLAY数据写入SYSOUT。

加里
回到顶部
查看用户资料 发送私信
mkk157

活跃用户


加入时间:2006年5月17日
帖子:310

发布发表于:2015年8月13日,星期四2:07下午
引用回复

@加里·卡洛尔
谢谢。我将线轴写入文件并估计空间。

让我们看看它是否还有其他好处。
回到顶部
查看用户资料 发送私信
比尔·伍德格

主持人荣誉


加入时间:2011年3月9日
帖子:7311
位置:矩阵内部

发布发表于:2015年8月13日,星期四2:25 pm
引用回复

我不是“在某些显示器上乱跑”的大提倡者。我什至不是一个很小的拥护者。

但是,甚至不要考虑未经测试就将其淘汰。

我不喜欢DISPLAY进行“调试”的一个原因是它会更改代码,有时会“隐藏”问题。

另一个原因是,对于数字字段,DISPLAY并不总是向您显示该字段中实际存在的内容,这样您可能仅仅因为DISPLAY在“说谎”您而错过了一个问题。

处理数字的方法是将其移动到数字编辑的项目,然后将其显示。人们这样做吗?不是很多。

另一个原因是,如果您有250,000个“无用的” DISPLAY,则很难找到一个有意义的DISPLAY,因为它是250,000个。

另一个原因是使程序更小,并消除了非业务需求的“噪音”。

另一个原因是250,000是一回事,如果您在某个时候遇到了大胖循环,则可能会冒充阀芯并使自己变得不受欢迎的风险。

等等。

将它们取出,然后进行测试。
回到顶部
查看用户资料 发送私信
彼得·荷兰

全球主持人


已加入:2009年10月27日
帖子:2475
所在地:荷兰,阿姆斯特尔芬

发布发表:2015年8月13日,星期四,下午3:18
引用回复

2,50,000行是什么? 250.000?或2.500.000?

为何对sysout没有JES2限制?
回到顶部
查看用户资料 发送私信
马索

REXX主持人


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

发布发表:2015年8月13日,星期四,下午4:58
引用回复

彼得·荷兰(PeterHolland)写道:
2,50,000行是什么? 250.000?或2.500.000?
这有点令人困惑,但这就是 印度编号系统 作品。
回到顶部
查看用户资料 发送私信
罗伯特·桑普

全球主持人


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

发布发表:2015年8月13日,星期四,下午6:20
引用回复

引用:
在使用和不使用DISPLAY语句的情况下,运行程序的CPU使用率差异不大。
你不会的当前一代的大型机可以在CPU时间的每一秒内执行很多行的COBOL。因此,删除250,000条DISPLAY语句不会对CPU造成太大影响。

如果您正设法证明这样做的成本节省,可能还不足以证明这样做的合理性。 SYSOUT进入JES假脱机(JES2或JES3),该假脱机由系统支持小组预先分配和确定大小,以处理整个站点。删除250,000条DISPLAY语句可能会允许其他工作使用该后台打印空间-但是,如果您的站点在后台打印空间上紧缺,那么您将遇到完成工作的主要问题。

最好的理由是消除不必每天看到250,000行输出的烦恼因素。这对我来说相当值得。而且,如果您确实摆脱了DISPLAY语句,请不要从代码中删除它们-将它们更改为注释或调试语句,而不要在第7列中添加*或D!
回到顶部
查看用户资料 发送私信
特里·海因兹

JCL主持人


已加入:2008年7月14日
帖子:1249
地点:美国明尼苏达州里奇菲尔德

发布发表:2015年8月13日,星期四,下午6:43
引用回复

正如罗伯特提到的,我喜欢使用SOURCE-COMPUTER的“带有调试模式”选项来打开和关闭显示。它确实需要重新编译。
回到顶部
查看用户资料 发送私信
史蒂夫·迈尔斯

活跃的成员


已加入:2013年11月30日
帖子:870
地点:宇宙

发布发表:2015年8月13日,星期四,下午7:27
引用回复

彼得·荷兰(PeterHolland)写道:
2,50,000行是什么? 250.000?或2.500.000?

为何对sysout没有JES2限制?
一些生产车间将生产作业设置为具有无限(或至少非常大)的SYSOUT限制。我倾向于同意Sample先生的观点:摆脱调试输出的麻烦因素值得重新认证程序。

它也不一定只是JES2问题。有时,此输出会被SYSOUT归档程序拦截,因此在那里所需的空间更少。挂在调试输出上7年似乎有点愚蠢-不管商店的标准是什么!
回到顶部
查看用户资料 发送私信
彼得·荷兰

全球主持人


已加入:2009年10月27日
帖子:2475
所在地:荷兰,阿姆斯特尔芬

发布发表于:2015年8月13日,星期四,8:43 pm
引用回复

玛索,
引用:
这有点令人困惑,但这就是印度编号系统的工作方式。
我不太在乎印度的编号。国际编号很重要。也许他们使用梵文键盘等,那么我有希伯来语键盘。
回到顶部
查看用户资料 发送私信
杰里特

活跃用户


已加入:2010年10月29日
职位:195
地点:加拿大安大略省多伦多市

发布发表:2015年8月13日,星期四,下午11:54
引用回复

考虑使用
码:
在SYSPUNCH上显示一些东西
将状态消息显示给单独的dd SYSPUNCH。它具有将程序名称放在第73列中的额外好处。可以将其发送到sysout,它使您可以在程序运行时查看其状态。
另一种选择是使用计数器并仅对每千个记录显示一次
码:
向WS-DISPLAY-COUNT添加1
如果WS-DISPLAY-COUNT = 1000 THEN
  DISPLAY something
 将0移动到WS-DISPLAY-COUNT
万一
回到顶部
查看用户资料 发送私信
比尔·伍德格

主持人荣誉


加入时间:2011年3月9日
帖子:7311
位置:矩阵内部

发布发表于:星期五八月14,2015 1:14上午
引用回复

杰里特,这是一个不错的提示,谢谢。我不知道

无论如何,对于该主题,不要将DISPLAY浪费掉,不要将它们摆在混乱的位置,以免混淆代码(指示符列或第七列中的注释或D)。记住,它们是有人认为在某些时候对某些目的有用的东西。它们可能不是,可能是错误的,可能是误导性的。他们可能/将使您误入歧途。

如果您迫切需要放入DISPLAY,请考虑一下您真正需要的东西,格式化数字项或以十六进制显示(使用搜索链接查找BBHEXD)。
回到顶部
查看用户资料 发送私信
彼得·荷兰

全球主持人


已加入:2009年10月27日
帖子:2475
所在地:荷兰,阿姆斯特尔芬

发布发表于:星期五八月14,2015 2:14下午
引用回复

我工作的地方有一个特殊的sysout类(SYSOUT = 0),该类会自动清除。
回到顶部
查看用户资料 发送私信
尼克·克劳斯顿

全球主持人


加入时间:2007年5月10日
帖子:2455
地点:英国汉普郡

发布发表于:星期五八月14,2015 4:13下午
引用回复

我工作过的地方不允许调试DISPLAYS在生产代码中处于活动状态。如果找到更改,则会被退回。
回到顶部
查看用户资料 发送私信
mkk157

活跃用户


加入时间:2006年5月17日
帖子:310

发布发表:2015年8月14日星期五5:12下午
引用回复

大家好,
这里分享了许多宝贵的观点。谢谢。

主持人
感谢您将印度号码系统更正为国际号码 icon_biggrin.gif

@比尔·伍德格
所有250,000 DISPLAY语句都是无用的,没有任何用处。还有另一个DISPLAY语句用于错误处理。

@ 彼得·荷兰,@ 马索,这是印度数字系统。

@Robert Sample,是的,我只会注释掉不需要的DISPLAY。

@ 彼得·荷兰,SYSOUT = 0我会尝试一下。但这也会清除有用的信息。
回到顶部
查看用户资料 发送私信
赤胜

全球主持人


已加入:2009年10月3日
职位:1788
地点:伊利诺伊州布卢明顿

发布发表于:星期五八月14,2015 6:01下午
引用回复

mkk157写道:
@ 彼得·荷兰,SYSOUT = 0我会尝试一下。但这也会清除有用的信息。

请注意,这特定于 荷兰先生的机器。由于sysout类是完全任意的,因此您必须询问支持工作组,如果有的话,等效于 您的 店。
回到顶部
查看用户资料 发送私信
马索

REXX主持人


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

发布发表:2015年8月15日,星期六1:23 pm
引用回复

如果您不介意执行I / O却看不到结果,则还可以:

添加一个 CBL ID区分之前的对帐单:
码:
 CBL OUTDD(SYS099)


使用 UPON 参数:
码:
   在SYSLIST上显示


然后根据需要为该逻辑单元分配一个DD,并将其分配给SYSOUT或DUMMY。
回到顶部
查看用户资料 发送私信
杰里特

活跃用户


已加入:2010年10月29日
职位:195
地点:加拿大安大略省多伦多市

发布发表:2015年8月17日星期一7:56 pm
引用回复

OUTDD(ddname)编译器选项将更改写入常规DISPLAY语句而不是默认SYSOUT dd的位置。

Enterprise COBOL的版本4似乎允许
码:
在SYSLIST上显示一些东西
我还没有尝试过。
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> COBOL程式设计

 


类似主题
话题 论坛 回覆
没有新帖 将文件从PD转换为显示... 同步排序 4
没有新帖 无法显示补偿变量 COBOL程式设计 4
没有新帖 过滤COMMIT / ROLLBACK语句 DFSORT / ICETOOL 13
没有新帖 使用Syncsort删除连字符和点 同步排序 8
没有新帖 在不同的字段上排序,删除重复项... 同步排序 8
搜索我们的论坛:


回到顶部