Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9200141
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 17, 20262026-06-17T22:41:58+00:00 2026-06-17T22:41:58+00:00

I have a Java application that require communication between different process. Process could run

  • 0

I have a Java application that require communication between different process. Process could run in same JVM or different JVM, but runs on the same machine.

My application need to submit “messages” to another process (same or different JVM) and forgot about it. similar to messaging queue like IBM “MQ”, but simple, and only use memory, no IO to hard disk for performance gains.

I’m not sure what is the best approach from Performance prescriptive.

  • I wonder if RMI is efficient in terms of Performance, I think it require some overhead.
  • What about TCP/IP socket using local host?

any other thought?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-17T22:42:00+00:00Added an answer on June 17, 2026 at 10:42 pm

    I wonder if RMI is efficient in terms of Performance, I think it require some overhead.

    RMI is efficient for what it does. It does much more than most people need, but is usually more than faster enough. You should be able to get of the order of 1-3 K messages per second with a latency around 1 milli-second.

    What about TCP/IP socket using local host?

    That is always an option but with plain Java Serialization this will not be a lot faster than using RMI. How you do the serialization and deserialization is critical for high performance.


    An important note is that much of the time is spent serializing and deserilizing the message, something most transports don’t help you with, so if you want maximum performance you have to consider an efficient marshalling strategy. Most transport protocols only benchmark raw bytes.

    Ironically if you are willing to use disk, it can be faster than TCP or UDP (like ZeroMQ) plus you get persistence for “free”.

    This library (I am the author) can perform millions of messages per second between processes with latency as low as 100 nano-second (350x lower than ZeroMQ) https://github.com/peter-lawrey/Java-Chronicle Advantages are

    • ultra fast serialization and deserialization, something most transport benchmarks avoid including this as it often takes much longer than the transport costs.
    • is that you can monitor what is happening between queues any time after the message was sent.
    • replay all messages.
    • the producer can be any amount of data ahead of your consumer to handle micro-burst gracefully up to the size of your disk space. e.g. the consumer can be TBs behind.
    • supports replication over TCP.
    • restart of either the consumer or producer is largely transparent.
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a java application that runs out of memory, but I have no
I have a Java application that run as a background service, i.e. no GUI.
We currently have an Java application that can be deployed on clients or run
I'm writing a java application where I require to run a process in background
I have a java application that people can log into (and do various things
I have a Java application that makes heavy use of a large file, to
I have a Java application that is managed using Maven. The project involves the
I have a Java application that needs to collect and report a large number
I have a standalone java application that fires up several JMS consumers using the
I have a JSP java application that has a name AAA-master so currently my

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.