diff options
author | Michal Strehovský <MichalStrehovsky@users.noreply.github.com> | 2020-04-23 14:00:34 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-23 14:00:34 +0300 |
commit | f5a987566eef13ea8f06e1fcfd3680ce307ae51f (patch) | |
tree | 34d784f8a6724e6f6231412132e662a02d5cbf11 /test/Mono.Linker.Tests.Cases/TestFramework | |
parent | 17b3c016d78508b9f6c1f6a61a31b5786d91cf24 (diff) |
Speed up linker by 10% (#1130)
...using one weird trick.
Cecil uses file I/O to read assemblies, but for our use cases this means we're spending a ton of time context switching between kernel mode and user mode.
Memory mapped I/O is more efficient for these access patterns.
The change is bigger than I would want it to be because:
* Loading assemblies from disk is not centralized (and in fact there are more extensibility pointer that encourage everyone to do their own loading)
* Cecil violates OOP principles by giving certain kinds of streams preferential treatment (`ModuleDefinition.FileName` is useless if the assembly wasn't opened with the blessed stream kind and Cecil doesn't have a way to provide it through other means).
Diffstat (limited to 'test/Mono.Linker.Tests.Cases/TestFramework')
0 files changed, 0 insertions, 0 deletions