用Java直接将数据写入RAM,然后读取它?

时间:2011-07-16 15:15:18

标签: java optimization shared-memory ram read-write

我知道这可能与编程中的许多一般规则背道而驰,但你会怎么做?我提出这个问题有两个原因:

  1. 我想尝试让应用程序将数据写入RAM而另一个用于从RAM中读取相同的数据。
  2. 我想知道因为在不久的将来我将不得不优化一个java应用程序。

4 个答案:

答案 0 :(得分:5)

这个问题缺乏很多关于一般编程的知识,至少从它的表达方式来看,但我到底会在这里幽默作者。

您真正要求的是共享内存作为IPC(进程间通信)的一种形式。 Java不支持共享内存,因为它非常特定于操作系统。而且,如果您想在两个进程之间共享对象,那么使用套接字就更容易也更灵活。您似乎非常关注性能而不了解程序的性能,但是通过套接字共享数据与实际用途的共享内存一样快。我不会过分担心共享内存不是一个选项。现在这个称为互联网的东西出现了,现在没有多少程序使用它了。

如果您真的对共享内存感到困惑,可以使用NIO查看内存映射文件。现在NIO2已经推出了Java 7,可能还有其他一些选择具有更好的性能。

答案 1 :(得分:4)

Java无法读取/写入RAM中的任意位置。

如果您想在不同的应用程序之间共享数据,我建议您使用文件或数据库。

答案 2 :(得分:2)

在这里,我假设您希望在两个进程之间“传递”数据,而无需将数据写入数据库或文件等临时存储。答案是:inter process communication。有一种技术可用于实施IPC,但选择很大程度上取决于您的要求。

答案 3 :(得分:0)

可以直接写入JVM控制的RAM。但是,除非两个应用程序在同一个JVM上运行,否则这可能不会非常有用。

访问物理内存可能需要Java以外的东西。