Add IBC support (dotnet/coreclr#19046)
authorMichelle McDaniel <adiaaida@gmail.com>
Mon, 20 Aug 2018 22:21:58 +0000 (15:21 -0700)
committerGitHub <noreply@github.com>
Mon, 20 Aug 2018 22:21:58 +0000 (15:21 -0700)
commit58f04a1daec6d8ba76783cd0c7759191e37528eb
treef8469059e7242ad70923dd38dcfd2eda063e6513
parenta5fdcc69f96adc328592b58a3ac814203a6f1831
Add IBC support (dotnet/coreclr#19046)

This change adds support to consume IBC data packages that are created by the dotnet/optimization repository. With these changes and dotnet/buildtoolsdotnet/coreclr#2103 to enable IBC optimizations for corefx, we will see a 32% decrease in the size of NetCoreApp (and an overall decrease of 16%), a 30% reduction in ref set, a 5% improvement in time to first request and steady state performance for MusicStore.

Size

  Crossgen Partial Partial vs Crossgen (lower is better)
Shared (MB) 185.6 137.3 0.74
Microsoft.NETCore.App (MB) 115.6 67.4 0.58
RefSet

MusicStore

  Crossgen Partial Partial vs Crossgen (lower is better)
Total 19.389 13.472 0.69
AllReady

Crossgen Partial Partial vs Crossgen (lower is better)
Total 17.58 12.214
Performance

MusicStore

  Crossgen Partial Partial vs Crossgen (lower is better)
Server Start (ms) 870 870.6 1.00
First request (ms) 3532.6 3386.6 0.95
Steady State (ms) 2.926 2.79 0.95
AllReady

Crossgen Partial Partial vs Crossgen (lower is better)
Server Start (ms) 2102 1942.4
First Request (ms) 4263.2 4126
Steady State (ms) 5.69 5.68
TechEmpower Plaintext

Crossgen Partial Partial vs Crossgen (lower is better)
Requests per Second 1928649.8 1893183.8
First Request (ms) 76.14 80.11
Startup (ms) 391 372.8
Working Set (MB) 382.2 373.4

Commit migrated from https://github.com/dotnet/coreclr/commit/e30616f7810838f94170786d9477df2423f4fa09
src/coreclr/build.cmd
src/coreclr/build.sh
src/coreclr/buildpipeline/DotNet-CoreClr-Trusted-Windows.json
src/coreclr/dependencies.props
src/coreclr/src/.nuget/optdata/ibcmerge.csproj [new file with mode: 0644]