虽然搜索了一段时间,但我找不到任何明确的答案来说明编译 64 位程序比 32 位程序有什么好处。 我在 SO 上发现了很多关于如何编译 32 位或 64 位的问题,以及一些关于 64 位版本的 opengl 的问题,但它们没有解决为什么的基本问题。
据我所知,使用 64 位的 MinGW 编译器很困难,因为 QT 似乎没有官方版本。 目前,我使用 MinGW 32 位来制作 3d opengl 应用程序,该应用程序非常注重大型顶点集的速度(使用 VBO 来处理它)。 我假设我会切换到用于 Windows 版本的 Visual Studio,并且可能会使用用于其他平台的 64 位非官方版本。
由于我还没有找到编译后的 32 位版本无法运行的操作系统,但由于我的应用程序的目标部署将主要在研究环境中的高端计算机上,所以我可以发布 64 位版本。
如果代码相同,对于使用 Qt 5 和 OpenGL 的应用程序,将编译器从 32 位切换到 64 位是否有明显的优势?
您需要确保您的依赖库是针对 64 位进行编译的,但之后的优势主要在于访问更多 RAM(单个进程中 4+g)以及可能更快的数据访问时间(由于更大的字号)。 第二个在很大程度上取决于您的数据访问模式以及预测缓存可以提供多少帮助,因此很难知道它是否会有多大帮助。 对于大多数随机访问模式来说,它并没有以可测量的方式提供帮助,而且它通常会被您对数据所做的事情所抵消。 对于 OpenGL 来说,这并没有太大区别。