Solaris(64 位)开发者指南

第 1 章 64 位计算

随着应用程序日渐多功能化和复杂化,同时数据集的大小不断增长,现有应用程序对地址空间的要求也持续增加。目前,某些类的应用程序需要超过 32 位系统的 4 GB 地址空间限制。以下举例说明了超过 4 GB 地址空间的应用程序:

开发 64 位计算环境的主要目的是为了使这些应用程序和其他大型应用程序能够高效运行。

突破 4 GB 限制

图 1–1 中的图表绘制了在安装了大量物理内存的计算机上,典型的性能与所运行的应用程序的问题大小之间的关系。如果问题非常小,则数据高速缓存 (D$) 或外部高速缓存 (E$) 中可以容纳整个程序。但是,程序的数据区域最终会变得非常大,以至于占满 32 位应用程序的整个 4 GB 虚拟地址空间。

图 1–1 典型性能与问题大小之间的曲线

该折线图说明性能随问题大小的增加而降低

超出 32 位虚拟地址限制之后,应用程序编程人员仍可以处理大型问题。对于超出 32 位虚拟地址空间限制的应用程序,通常可以在主存储器和辅助存储器(例如,磁盘)之间分割应用程序数据集。遗憾的是,向磁盘驱动器传入或传出数据远比在内存间传输数据慢(相差若干个数量级)。

现在,许多服务器都可以处理 4 GB 以上的物理内存。高端台式机遵循同样的趋势,但是,没有任何 32 位程序可直接处理 4 GB 以上的空间。不过,64 位应用程序可以使用 64 位虚拟地址空间功能来允许直接处理最多为 18 EB(1 EB 大约等于 1018 个字节)的空间进行寻址。这样,较大的问题便可以直接在主存储器中进行处理。对于可伸缩的多线程应用程序,可以向系统中添加更多处理器以进一步加快应用程序的执行速度。此类应用程序仅受计算机中物理内存量的限制。

不过,很显然,对于各类应用程序来说,能够直接在主存储器中处理大型问题无疑 64 位计算机的主要性能优势。

突破大地址空间限制

迫切需要创建 64 位应用程序的其他原因还包括: