←back to thread

261 points tosh | 1 comments | | HN request time: 0.209s | source
Show context
akira2501 ◴[] No.42068280[source]
> A single 1080p raw video frame would be 1080 * 1920 * 1.5 = 3110.4 KB in size

They seem to not understand the fundamentals of what they're working on.

> Chromium's WebSocket implementation, and the WebSocket spec in general, create some especially bad performance pitfalls.

You're doing bulk data transfers into a multiplexed short messaging socket. What exactly did you expect?

> However there's no standard interface for transporting data over shared memory.

Yes there is. It's called /dev/shm. You can use shared memory like a filesystem, and no, you should not be worried about user/kernel space overhead at this point. It's the obvious solution to your problem.

> Instead of the typical two-pointers, we have three pointers in our ring buffer:

You can use two back to back mmap(2) calls to create a ringbuffer which avoids this.

replies(3): >>42068564 #>>42068966 #>>42069413 #
1. didip ◴[] No.42069413[source]
I agree with you. The moment they said shared memory, I was thinking /dev/shm. Lots of programming languages have libraries to /dev/shm already.

And since it behaves like filesystem, you can swap it with real filesystem during testing. Very convenient.

I am curious if they tried this already or not and if they did, what problems did they encounter?