4 ms·
Interesting, you have a point actually. I would have thought that the performance cost of calling through an interface would be negligible, but I'm wrong about
by ereyes01 8y ago
Interesting, you have a point actually. I would have thought that the performance cost of calling through an interface would be negligible, but I'm wrong about that:
https://github.com/golang/go/issues/20116 https://github.com/golang/go/issues/20116
The issues linked at the end there are interesting reads, and maybe they'll do something about this by Go 1.11.
Having said all that, will an implementation of your code with generics be all that much faster? Or slower? Of course, those are not answerable questions in practice with today's tools :-)
- burntsushi 8y ago> Having said all that, will an implementation of your code with generics be all that much faster? Likely yes. If generics are implemented via monomorphization, then you can avoid the overhead of virtual calls necessitated by interfaces. It is possible that the compiler could become smart enough to devirtualize calls through interfaces.
- weberc2 8y agoPretty sure devirtualization is a whole program optimization in the general case, and I don’t see the Go dev team Pershing that in the next couple of years.
- burntsushi 8y ago> I don’t see the Go dev team Pershing that in the next couple of years Agreed. But if I didn't mention it, I'm sure someone would have felt obligated to respond with a "well actually..."
- pjmlp 8y agoGo 1.11 is already feature freeze and it doesn't seem likely.