| ▲ | Principles for Fast Tokio Applications(dial9-rs.github.io) |
| 39 points by carllerche 2 hours ago | 9 comments |
| |
|
| ▲ | Tsarp an hour ago | parent | next [-] |
| One great use of agentic coding is being able to add and very granular tracing instrumentation to help with these sort of optimizations. |
| |
| ▲ | jeffbee an hour ago | parent [-] | | Also a great way to make sure that your app spends most of its time in observability overhead. For example even the latency histogram that the OP mentions is wildly expensive. | | |
| ▲ | Veserv 3 minutes ago | parent | next [-] | | That just sounds like bad tracing implementations. A tracing implementation should be able to drive gigabytes per second of trace logs to memory. If you are generating it slow enough to allow actual offload then you should be in the 1—10% range even if you are saturating your offload. You should, of course, upper bound this overhead by switching to a full time travel debugging solution, thus tracing everything, when you get to the 10-30% range. | |
| ▲ | nicoburns 44 minutes ago | parent | prev | next [-] | | One legitimately great thing about LLMs is that it makes it feasible to add these kind of tracing instrumentations temporarily for profiling and then throw them away so they never reach source control let alone production. | | |
| ▲ | jeffbee 32 minutes ago | parent [-] | | I can get an LLM to trace my incomprehensible Tokio application which was also written by an LLM, which is why I don't understand its behavior. Truly the future we were promised. |
| |
| ▲ | MomsAVoxell an hour ago | parent | prev [-] | | If you’re not using eBPF to trace your app you’re doing it wrong. | | |
|
|
|
| ▲ | jeffbee an hour ago | parent | prev [-] |
| All of the significant server applications I have encountered in the industry have suffered from the same problem, which surprised their authors but seemed obvious to me: the application was spending the majority of its CPU time doing meta-work like entering and leaving epoll, stealing work from itself, etc. There are principles for writing Tokio servers and these are good points in the OP but I think they are little-known and too easy to violate. |
| |
| ▲ | cube00 an hour ago | parent [-] | | I can't say I'm surprised when I see the 100+ function stack traces that Axum built on Tokio produces. Before you say Axum is "holding it wrong" the project lives under the tokio-rs GitHub org. |
|