Comments (2)
I'll definitely add real-life benchmark results comparing gorpc to net/rpc (and, probably, other popular rpc implementations) into README.md.
Currently bench_test.go contains benchmarks, which can be used for performance comparisons with certain grain of salt. Here are results from my machine:
$ go test -run=None -bench=rpc
PASS
BenchmarkNetrpcInt-4 50000 29676 ns/op
BenchmarkNetrpcByteSlice-4 50000 30501 ns/op
BenchmarkNetrpcStruct-4 20000 75986 ns/op
BenchmarkGorpcInt-4 100000 20267 ns/op
BenchmarkGorpcByteSlice-4 50000 21694 ns/op
BenchmarkGorpcStruct-4 20000 62887 ns/op
These results may be far from real life, since both server and client are running on the same machine during benchmarks. In the real world client and server are usually located on distinct physical machines connected over the network. Gorpc should work faster in the real world, since it:
- minimizes the number of send()/recv() syscalls under high load (which, in turn, should minimize the number of network packets required for rpc).
- minimizes the amount of data floating over the network between client and server.
from gorpc.
Maybe, we can put on benchmark to compare with gRPC
from gorpc.
Related Issues (20)
- thread-safe? HOT 2
- Build is breaking under go older than 1.4 HOT 2
- Dispatcher type validation is probably a bit too strict (bug) HOT 2
- Dealing with time.Time HOT 3
- Is it possible to add support of struct{}? HOT 2
- bidirectional support HOT 3
- Typo in dispatcher.go fatal log HOT 1
- windows call timeout HOT 3
- Can not register service after the server listens
- Dispatcher.AddService: allow clients to register interfaces
- does gorpc support multi languages?
- Consider exposing gorpc.Server.ServeConn HOT 1
- How to coordinate physically seperate servers and clients HOT 2
- ConnStats.Snapshot example please
- WS supporting
- the docs make me confused, is there any project for reference? HOT 2
- Is this still a better choice than golang roc? HOT 2
- Custom Encoding
- Client connection cause server panic on ARM HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gorpc.