我正在读取一个使用 Intel Fortran 打开的 ascii 文件:
open(10, file=trim(file_name), status='old', action='read', iostat=ierr, iomsg=msg)
要跳过一些我不想存储的文件行,我使用不带参数的 read() :
read(10, *)
VTune 报告在 read() 中分配了 53 GB(不带参数):
该内存是否真的分配了,还是 VTune 错误地识别了内存分配?是什么导致了这种行为?
不,此时没有分配 53+GB 的虚拟内存。没有 I/O 列表的读取可能根本不分配内存。(我是前 Intel Fortran 编译器开发人员。)