Comments (8)
In this case, I think the readable buffer needs to expose increment reference count and you can get hold of the bytes without copying. I have to add some new methods into the readable buffer.
from netuv.
I have added a method in ReadableBuffer
public void ReadBytes(Action processor, int length)
so that you don't have to copy data out to process.
Do you think this would be enough for your processing chunks?
I think it should. But now I do not use NetUv. There are two reasons:
first: #55
Because I cant have client and server in this same application its impossible to do unit tests etc.
I tried System.IO.Pipelines.Networking.Libuv and this problem does not exist there.
Second (worst): Our application must work on Windows XP. So we cant use net standard :( Its hard to port NetUv to NetFramework 4, standard Net sockets are to slow for us. We are still looking for a solution to this problem ....
from netuv.
Hi, what is the average size of the data in bytes?
The readable buffer internally has reference counting, it can be exposed to retain without copying.
from netuv.
Averge size depends on several factors (compression, user activity etc.) but in current solution in some cases we sending data in 150 KB chunks. (and I need this full 150 KB chunk to process it).
How to use ReadableBuffer without coping ?
from netuv.
I have added a method in ReadableBuffer
public void ReadBytes(Action<ArraySegment> processor, int length)
so that you don't have to copy data out to process.
Do you think this would be enough for your processing chunks?
from netuv.
I my case, I need to calculate some aggregation of the buffer e.g. md5 without copy out the data, this callback syntax is not very convenient to use. Since the underlying buffer of ReadableBuffer is reference counted, it's guarenteed not being recycled before the end of stream consumer function. I don't see the point of using a callback.
from netuv.
I am trying to avoid returning buffer since the underlying buffer might not be a heap array, it could be unmanaged memory.
from netuv.
Kestrel does the thread marshalling. Windows XP support is quite a stretch.
from netuv.
Related Issues (20)
- libuv version on linux HOT 8
- Cause NullReferenceException in EventLoop HOT 14
- Question about ReadableBuffer.ReadString with separator HOT 2
- IndexOutOfRangeException occurred in Readbytes HOT 2
- How to get a callback on server when client disconnect HOT 4
- Multiple loops and threads HOT 10
- When to Dispose Async HOT 2
- System.NullReferenceException In WriteRequest.Release() HOT 7
- System.AccessViolationException In StreamHandle.WriteStream HOT 4
- SegFault on Linux when server actively terminates client connection HOT 57
- Support websocket HOT 1
- update libuv v1.19.1? HOT 1
- how can i use multi event loop? HOT 4
- Can I join you? HOT 1
- can you give a performance and stable test HOT 1
- sir,you should update your prj to v2.1 HOT 4
- Support .NET Core 2.1 new memory primitives like Memory<T> and Span<T> HOT 1
- 怎么才能正确使用 HOT 5
- OnError never called HOT 6
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 netuv.