docs: Explain static dispatch advantage more clearly
This commit is contained in:
parent
522d09dfec
commit
fcc21b36a3
1 changed files with 5 additions and 4 deletions
|
@ -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 “optimise” code to become slower.
|
||||
For example, functions inlined too eagerly will bloat the instruction cache
|
||||
|
|
Loading…
Add table
Reference in a new issue