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

How can I obtain memory usage information using zos assembler

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

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

给定地址 space 的限制值存储在 LDA 数据区中(参见 https://www-304.ibm.com/servers/resourcelink/svc00100.nsf/pages/zOSV2R3ga320937/$file/iead300_v2r3.pdf)。在汇编程序中,您可以通过遵循 PSAOLD 到 ASCBLDA 然后检查您要查找的任何区域大小来获得该值。

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