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

   - Language: Java 
   - Java Version: 24 
   - Build Tool: Maven 
   - IDE: Spring Tool Suite (STS) 
   - Operating System: Windows 11 
   - Memory Allocation: 64 MB each (client and server) 
   - Connection: localhost 

 

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

   - gRPC Java: 200–500 calls/second 



I have attached performance client file, please review it.. 
HelloWorldPerformaceClient 
<https://1drv.ms/u/c/199210faefceddf2/EaR6SeKrgNNNqBA300YdQJ4BIgTG8RfBQSCp4cUv6GloGA?e=8x7mLp>
On Wednesday, October 22, 2025 at 11:46:13 AM UTC+5:30 Kannan Jayaprakasam 
wrote:

> Are you reusing the ManagedChannel for making all the RPC's or recreating 
> it for each RPC? Reusing the channel is the way to go since the connections 
> don't need to be reestablished.
>
> On Thursday, October 16, 2025 at 6:40:21 PM UTC+5:30 Mansoor Shaik wrote:
>
>> 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
>>
>>    - Language: Java 
>>    - Build Tool: Maven 
>>    - Framework: gRPC Java (sample from official documentation) 
>>    - Java Version: 24 
>>    - Operating System: Windows 11 
>>    - Hardware: 8 GB RAM, Intel i5 Processor 
>>
>>

-- 
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 [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/grpc-io/c8c7daf8-d3fd-45c1-9ae2-6bc79baa973fn%40googlegroups.com.

Reply via email to