Hacker News new | ask | show | jobs
by staticassertion 1436 days ago
https://gvisor.dev/docs/architecture_guide/performance/

https://gvisor.dev/docs/architecture_guide/performance/#netw...

Network performance in gvisor is awful and, by gvisor's own documentation, this is a matter of "implementation costs" ie: it is how gvisor is written, not gvisor's fundamental constructs, that makes it slow.

The rest of the benchmarks are notable as well, there are a few other places where the implementation is called out as being a problem.

1 comments

So maybe they should team up and work on replacing gVisor with something that shares as much code as possible with this new thing, which one would hope would be architected in a way to be able to help replace gVisor?
Not everything needs to be molded into a common base that serves the needs of all. Fuchsia has different constraints than the ones gvisor is written for and choosing to not try to morph gvisor into something it doesn't want to be is okay. Optimizing to solve problems should be the goal. Sharing code is nice to have where it makes sense.
The context here was that gVisor was a suboptimal way to solve the problem and they know that... so I am not sure in what point you are trying to make by saying people can optimize to solve problems unless you actually mean people can optimize to not solve problems.
Or maybe not?
Yeah, of course: if you are the kind of company that like a having tens of thousands of engineers working on five different versions of the same thing, with one team explicitly working on solving a problem another team has but without helping them as that's some combination of not-fun and not-promotion-worthy, you can of course do whatever you want.
Or they have context that helped them decide to do something this way?
lol, sure.
Some obvious context from an outsider:

1. It's designed to run on Fuschia, not Linux

2. Go FFI is very inefficient, you can't just "extend" a Go project with native bindings and get the same performance wins

3. Hopefully the gvisor team learned the obvious lesson that Go is not suitable for this kind of work

Why?