frando / async-udx Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
Currently all reads and writes on all channels share a Mutex onto a UdxSocket
. This leads to high congestion and sub-par performance, especially with many channels (UdxStream
s).
The solution is to use a lock-free design. Options are:
Channel
s (e.g. from async-channel
) - this means, at least for writing, that we'd have to allocate additional buffers. For reading it might work to send Packet
s over the channel without allocating, and send back a read cursor which ticks garbage collection for read packets.tokio::io::DuplexStream
or sluice::pipe::Pipe
. I have tried an implementation based on these, but have not succeeded because the types are not Clone
, and wrapping them into a Mutex
is not easy either, because the impl of AsyncBufRead
(which we want if we don't want to allocate on each write) contains a reference to the pipe, which prohibits mutable access to self while holding onto the read buffer.Either of those can work out likely with some more thought about alias and lifetime rules.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.