我正在编写一个 Fortran 90 程序(使用 gfortran 编译)以在 Mac OS X 下运行。我有 13 个数据数组,每个数组包含大约 0.6 GB 的数据一次内存中的所有 13 个数组,我基本上是在尝试使用所有 8 GB,鉴于其他系统需求,我知道这是不可能的。所以我知道数组会被交换。我不知道的是操作系统如何管理它。尤其是,
当操作系统需要为其他数据结构腾出空间时,操作系统是否会换掉整个数据结构(例如数组),或者它是否更愿意逐页进行?也就是说,它是否根据数组的哪些部分最近最少访问来交换部分数组?
答案可能决定我如何组织数组。如果部分数组可以被换出,那么我可以将所有内容存储在一个巨大的数组中(通过索引来选择我需要的 13 个子数组中的哪一个)并相信操作系统可以有效地管理所有内容。否则,我可能会保留单独且不同的数组,每个数组都可以舒适地适应可用的物理内存。