diff options
| author | Manish Goregaokar <manishsmail@gmail.com> | 2015-02-23 14:44:23 +0530 |
|---|---|---|
| committer | Manish Goregaokar <manishsmail@gmail.com> | 2015-02-23 23:28:46 +0530 |
| commit | eb06c0ecd26081ee8795447184f47d453e3b3fca (patch) | |
| tree | ad328a6c7d1250e5206e047573e2d53b9639dc04 /src/doc/trpl | |
| parent | af81ec2f43aeac2de5efc7e0d1c6e4589b57f7f8 (diff) | |
| parent | fcc21b36a360ed7d5e9e19950bff6fcc5f40c833 (diff) | |
| download | rust-eb06c0ecd26081ee8795447184f47d453e3b3fca.tar.gz rust-eb06c0ecd26081ee8795447184f47d453e3b3fca.zip | |
Rollup merge of #22593 - brson:spatch, r=steveklabnik
r? @steveklabnik
Diffstat (limited to 'src/doc/trpl')
| -rw-r--r-- | src/doc/trpl/static-and-dynamic-dispatch.md | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/doc/trpl/static-and-dynamic-dispatch.md b/src/doc/trpl/static-and-dynamic-dispatch.md index 98dac9bf84b..1baf41329f5 100644 --- a/src/doc/trpl/static-and-dynamic-dispatch.md +++ b/src/doc/trpl/static-and-dynamic-dispatch.md @@ -79,10 +79,11 @@ fn main() { } ``` -This has some upsides: static dispatching of any method calls, allowing for -inlining and hence usually higher performance. It also has some downsides: -causing code bloat due to many copies of the same function existing in the -binary, one for each type. +This has a great upside: static dispatch allows function calls to be +inlined because the callee is known at compile time, and inlining is +the key to good optimization. Static dispatch is fast, but it comes at +a tradeoff: 'code bloat', due to many copies of the same function +existing in the binary, one for each type. Furthermore, compilers aren’t perfect and may “optimize” code to become slower. For example, functions inlined too eagerly will bloat the instruction cache |
