Comments (4)
So a lot of the actual request handling is done by hyper. Tonic is merely just a wrapper around types. That said, there have been many upstream changes to both hyper and tokio that have yet to be fully published. So I am personally waiting for both to get to a state where we should really start looking at optimizing performance until then it doesn't make much sense. Remember tonic is still in an alpha state but we are getting closer.
For perf possibly flamegraph?
from tonic.
Hmm. Here is some throughput and latency data for various http frameworks: https://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=plaintext
It claims that tokio-minihttp has 3.1msec latency for HTTP GETs that return a fixed string "hello world". I see approx. 20msec latency for gRPC requests.
The test of Techempower uses a version of tokio that is not yet async/await-enabled. The 20ms latency, can it be a bug in async/await support in tokio or rust? Who do I talk at tokio/hyper about this?
A flamegraph would be great. How do I generate one for a rust program, or a tokio-based server?
from tonic.
@dominiquelefevre right, tokio 0.1 is a bit different from tokio 0.2. In fact the scheduler has even been completely rewritten! https://tokio.rs/blog/2019-10-scheduler/
You could use this https://github.com/ferrous-systems/flamegraph
from tonic.
Fixing #119 actually resolves this one.
from tonic.
Related Issues (20)
- Tonic 0.12.0 compiles tokio even when no features are enabled HOT 4
- Upgrading to tonic-reflection 0.12 breaks reflection HOT 5
- use of undeclared crate or module `tonic_reflection` HOT 2
- How does tonic library dynamically set up custom middleware HOT 1
- Naming collisions with std::marker::Sync/Send HOT 1
- How to make tonic support tls HOT 4
- nit: inconsistent use of crate::Error vs Error in single transport src file
- calling grpc server hosted on cloud run with https fails with transport error HOT 2
- version 0.12.1 causes ClientTlsConfig to explode with invalid CryptoProvider HOT 2
- Configuring Timeout for Graceful Shutdown HOT 1
- How to get grpc-status in Layer? HOT 1
- Make the TimeoutExpired a public tonic type rather than a transport type
- tonic_build clone server
- long headers from the server hang tonic HOT 5
- Non-Anonymous Authentication
- The trait `Message` is not implemented HOT 1
- Remove trait bound on generated server struct
- NamedService makes it impossible to wrap individual services with non-intercept layers HOT 2
- After tonic is updated from 0.8.3 to 0.11.0 in the csi driver, an error message "PROTOCOL_ERROR" is displayed when kubelet calls the get_info interface.
- Share tonic server port with other http routes HOT 3
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 tonic.