Hello gRPC Team,
I hope you are doing well.
I am currently working on evaluating gRPC Java performance as part of a sample setup, and I wanted to share an issue I’m facing that seems performance-related.
I have implemented a minimal gRPC server and client setup using Java + Maven, following the official example provided on the gRPC Java documentation site( https://grpc.io/docs/languages/java/quickstart/) The build and execution both complete successfully — however, the observed performance is much lower than expected.
When I run the server and client locally on the same machine, I notice that in one second, the client can only perform around 200–500 gRPC synchronous calls using synchronous stubs. I expected much higher throughput, given that gRPC is designed to provide significant performance benefits compared to RMI-based APIs.
As a comparison, when I tested a Java RMI-based setup under similar conditions, benchmark results it achieved 7,684 calls per second
I’ve ensured that the implementation strictly follows the example code, including .proto generation and Maven dependency configuration.
Below are the technical details and the steps I’ve already verified:
Environment Details
Dear gRPC Team,
I hope you are doing well.
I am testing gRPC Java performance using the official HelloWorld example (Maven-based) from the gRPC GitHub repository:
🔗 https://grpc.io/docs/languages/java/quickstart/
The project runs correctly, and I made a small modification in the client code to measure how many RPC calls can be executed within 1 second — just to check the performance benchmark.
Setup Details
Modification
I modified the client to run a simple loop that repeatedly calls sayHello() for 1 second and counts the total number of RPCs executed.
Below is the modified section of the code in the client:
long
startTime = System.currentTimeMillis();
int callCount = 0;
while
(System.currentTimeMillis() - startTime < 1000) {
blockingStub.sayHello(request);
callCount++;
}
long
maxMem = Runtime.getRuntime().maxMemory() / (1024 *
1024);
System.out.println("In 1 second, gRPC method called " + callCount
+
" times,
allocated memory = " + maxMem + " MB");
Everything else in the project (server and client) is the same as the official gRPC example.
Result
On 22 Oct, 2025, at 8:13 PM, Mansoor Shaik <shaikman...@gmail.com> wrote:
--
You received this message because you are subscribed to the Google Groups "grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email to grpc-io+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/grpc-io/c8c7daf8-d3fd-45c1-9ae2-6bc79baa973fn%40googlegroups.com.
![]() | Empowering the world to design We're hiring, apply here! Check out the latest news and learnings from our team on the Canva Newsroom. |