0

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

4

1 回答 1

3

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

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

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

于 2017-11-30T22:29:51.770 回答