Assembly 如何使用zos汇编程序获取内存使用信息

Assembly 如何使用zos汇编程序获取内存使用信息,assembly,memory,zos,mvs,Assembly,Memory,Zos,Mvs,如何以编程方式从正在运行的程序中获取汇编程序当前使用汇编指令/宏的内存量?我正在调试一个878(内存不足)错误,我希望我的程序在不同阶段报告它使用了多少内存。根据地址空间的类型(TSO会话、批处理作业、STC等),可以通过多种不同的方式设置区域大小.一些网站使用SMF出口设置自定义区域大小,因此了解这里发生的事情并不总是那么容易 给定地址空间的限制值存储在LDA数据区中(请参见$file/iead300_v2r3.pdf)。在汇编程序中,您可以通过将PSAAOLD传递给ASCBLDA,然后检查您

如何以编程方式从正在运行的程序中获取汇编程序当前使用汇编指令/宏的内存量?我正在调试一个878(内存不足)错误,我希望我的程序在不同阶段报告它使用了多少内存。

根据地址空间的类型(TSO会话、批处理作业、STC等),可以通过多种不同的方式设置区域大小.一些网站使用SMF出口设置自定义区域大小,因此了解这里发生的事情并不总是那么容易

给定地址空间的限制值存储在LDA数据区中(请参见$file/iead300_v2r3.pdf)。在汇编程序中,您可以通过将PSAAOLD传递给ASCBLDA,然后检查您要查找的区域大小来获得该值


z/OS上的各种UNIX服务API中提供了一个更现代的接口,例如getrusage(BPX1GRU)为您提供了多个资源(包括内存)的资源利用率。所有需要使用此功能的汇编程序都是安全信息中的UNIX UID值-不需要其他特殊设置。

区域大小可以根据地址空间的类型(TSO会话、批处理作业、STC等)设置多种不同的方式.一些网站使用SMF出口设置自定义区域大小,因此了解这里发生的事情并不总是那么容易

给定地址空间的限制值存储在LDA数据区中(请参见$file/iead300_v2r3.pdf)。在汇编程序中,您可以通过将PSAAOLD传递给ASCBLDA,然后检查您要查找的区域大小来获得该值



z/OS上的各种UNIX服务API中提供了一个更现代的接口,例如getrusage(BPX1GRU)为您提供多个资源(包括内存)的资源利用率。汇编程序只需在您的安全信息中使用UNIX UID值,无需其他特殊设置。

这取决于您运行的操作系统,并涉及调用操作系统API。我正在运行zos v1.3 Real或virtual?哇,z/OS 1.3:支持结束端口2005-03-31…我搞错了,它的实际版本是2.1。确定虚拟内存量就可以了。我正在尝试调试878异常终止。我确信还有其他方法可以做到这一点,但这是我感兴趣的学习方法(如果可能的话)这取决于您正在运行的操作系统,并涉及调用操作系统API。我正在运行zos v1.3 Real还是virtual?哇,z/OS 1.3:支持结束2005-03-31…我错了,它实际上是2.1版。确定虚拟内存量就可以了。我正在尝试调试878 abend。我肯定还有其他方法可以做到这一点,但这是我使用的方法对学习感兴趣(如果可能的话)我知道我的region limit size是什么,我在JCL EXEC语句中指定它,region=XX parm。我对允许的最大内存不感兴趣,但对运行程序在执行过程中的任何给定时间点当前分配的内存量感兴趣。Valerie的回答是正确的。
LDA
包含当前使用情况只是限制。
LDALOAL
是16MB线以下的当前私有区域使用量,
LDAELOAL
是16MB线以上的使用量。
BPX1GRU
似乎只返回时间,而不是内存使用量,除非我遗漏了什么?@viousmonkey:小警告:仅仅因为在JCL中设置了区域并不意味着您真正了解自己r区域大小-有几种方法可以覆盖区域大小,具体取决于您的站点的复杂程度。@David Crayford:您对“库存”BPX1GRU的看法是正确的……不过有一种方法-如果您确实需要知道,我建议打开SYSOMVS跟踪并运行“ps”“带-vsz选项的命令-您肯定会在跟踪输出中找到答案。我知道我的区域限制大小是什么,我在JCL EXEC语句中指定它,区域=XX parm。我对允许的最大内存不感兴趣,但对正在运行的程序在执行过程中的任何给定时间点当前分配的内存量感兴趣。Valerie的答案是正确的。
LDA
包含当前使用情况,而不仅仅是限制
LDALOAL
是16MB线以下的当前专用区域使用情况,
LDAELOAL
是16MB线以上的使用情况。
BPX1GRU
似乎只返回时间,而不返回内存使用情况,除非我遗漏了什么?@FIEREMONKEY:小警告:仅仅因为你在JCL中设置了区域并不意味着你真正知道你的区域大小-根据你的站点的复杂程度,有几种方法可以覆盖区域大小。@David Crayford:关于“库存”你是对的BPX1GRU…但是有一种方法-如果您真的需要知道,我建议打开SYSOMVS跟踪并运行带有-vsz选项的“ps”命令-您肯定会在跟踪输出中找到答案。