avoid Function instantiating std::move over lambdas
Summary:
There are many lambda types so that can be a lot of instantiations. This shows up with futures, which use `Function` under the hood with lambdas.
It is not as helpful to avoid `std::move` completely - it is primarily important to avoid it over callables, since these locations are widely-instantiated but may also be the only instantiations over the callables.
```name=trunk
$ foundation/scripts/run-perf-compile --syntax folly/futures/test/FutureTest.cpp
6,359,421,839 instructions:uP
```
```name=branch
$ foundation/scripts/run-perf-compile --syntax folly/futures/test/FutureTest.cpp
6,331,468,279 instructions:uP
```
Reviewed By: Gownta, luciang
Differential Revision: D32971147
fbshipit-source-id: b2ce1325330ed59d9fb23fed48476fddf24e7854
Showing
Please register or sign in to comment