我知道共享内存和进程间通信的基础知识,但由于我的应用程序相当具体,所以我问这个问题以获得一般反馈。
我正在使用 32 位可视化编码工具包在 64 位机器(MacOS 和 Win 64)上工作。目前将工具包移植到 64 位是不切实际的,所以我有内存限制。
我正在开发一个应用程序,该应用程序必须能够快速擦洗(根据用户输入来回移动)高质量视频。显而易见的解决方案是: 1 - 将其全部保存在内存中。2 - 从磁盘流式传输。目前将其全部放入内存需要将视频质量降低到不可接受的程度,并且从磁盘流式传输会导致擦除在加载时挂起。
我目前的思路是运行一个主程序和多个从属程序。每个从机将一段视频加载到内存中,当主程序需要加载视频的不同部分时,它会从从机请求这些数据并将其传输过来。
我的问题是,这样做的合适方法是什么?我怀疑共享内存不允许我超越我的应用程序当前的 32 位内存限制。我可以做一些像管道一样简单的事情,但我想知道是否还有其他更合适的东西。
理想情况下,这个解决方案应该是 Mac/Win 可移植的,但由于最终解决方案必须驻留在 Windows 盒子上,我将选择 Windows 解决方案。也越容易越好,因为我不想在这方面花费数周的开发时间。
先谢谢了。