Mic*_*che 6 java ipc shared-memory memory-mapped-files
我需要在同一台机器上运行的两个Java应用程序(两个不同的JVM)之间共享数据.我确切地说要共享的数据很大(大约7 GB).应用程序必须非常快速地访问数据,因为它们必须以非常高的速率应答传入的查询.我不希望应用程序为每个应用程序保存一份数据副本.
我已经看到一个选项是使用内存映射文件.应用程序A从某处获取数据(比如数据库)并将其存储在文件中.然后应用程序B可以使用访问这些文件java.nio
.我不知道到底内存映射文件是如何工作的,我只知道数据存储在一个文件,这个文件(或它的一部分)映射到内存的区域(虚拟内存?).因此,这两个应用程序可以读写内存中的数据,并且更改会自动(我猜?)提交到文件中.我也不知道文件的最大大小是否完全映射到内存中.
我的第一个问题是两个应用程序在这种情况下共享数据的不同可能性(我的意思是考虑到数据量非常大,并且访问这些数据必须非常快)?我确切地说这个问题与内存映射I/O无关,它只是知道解决同一问题的其他方法是什么.
我的第二个问题是使用内存映射文件的优缺点是什么?
谢谢
sar*_*old 10
我的第一个问题是两个应用程序共享数据的不同可能性是什么?
正如S.Lott指出的那样,有很多机制:
AF_UNIX
或AF_INET
或AF_INET6
我的第二个问题是使用内存映射文件的优缺点是什么?
优点:
缺点:
归档时间: |
|
查看次数: |
3434 次 |
最近记录: |