我有一个32位应用程序,由于第三方依赖项仅为32位,很难转换为64位。
我的应用程序需要处理几个大缓冲区。我想知道我的应用程序是否有办法将这些缓冲区发送到64位可执行文件,这将存储这些缓冲区的队列,我的应用程序可以一次请求一些缓冲区,以便它可以处理它们。
我有一些类似的东西使用增强互通,但我不确定性能损失是什么。实现这一目标的最佳表现方式是什么?
[编辑 - 使用64位应用程序进行'存储'的目的是它可以存储超过4GB的内存]
答案 0 :(得分:3)
如果我正确理解你,你想要做的是能够使用程序中超过2或3 GB的内存,即使它是32位程序。如果是这种情况,请考虑创建一个匿名内存映射文件(使用CreateFileMapping
)并使用映射作为缓冲区。当你不使用它们时取消映射它们并且它们停止消耗地址空间,但是在x64操作系统上,操作系统完全能够将缓冲区保留在RAM中而不是将它们分页。
如果那不是你想要做的,那么我首先会问你想要64位进程。