Msbuild: As a customer, I want implicitly cached references so that MSBUILD builds faster

Created on 27 Mar 2018  路  7Comments  路  Source: dotnet/msbuild

RAR (Resolve Assembly References) as a service.

We have many issues related to the fact that ResolveAssemblyReferences a) must run for every build, including no-op incremental builds and b) is slow.

Creating a long-lived process as a cache for assembly information and so on could have a big impact on build perf, including design-time builds.

Note: This is a draft/proposed _user story_ and not committed for .NET 6.0 yet.

Issues:

  • [X] [Design of RAR as service](https://github.com/dotnet/msbuild/issues/5536)
  • [x] [Re-evaluate the choice of serialization technology](https://github.com/dotnet/msbuild/issues/5939)
  • [x] [RAR service prototype](https://github.com/dotnet/msbuild/issues/6193)
  • [x] [Define criteria for RAR Concurrency](https://github.com/dotnet/msbuild/issues/6217)
  • [x] [Move StreamJsonRpc and dependencies to a folder under MSBuild\bin](https://github.com/dotnet/msbuild/issues/5752)
  • [ ] [RAR concurrency: I/O virtualization](https://github.com/dotnet/msbuild/issues/6218)
  • [ ] [ResolveAssemblyReference is slow on .NET Core with many references](https://github.com/dotnet/msbuild/issues/2015)
  • [x] [Optimize serialization of on-disk RAR cache](https://github.com/dotnet/msbuild/issues/6057)
    Outdated issues:
  • [ ] [Node startup](https://github.com/dotnet/msbuild/issues/6103)
  • [ ] [Data transfer](https://github.com/dotnet/msbuild/issues/5556)
  • [ ] [Serialization of request into queue](https://github.com/dotnet/msbuild/issues/5557)
  • [ ] [Logging](https://github.com/dotnet/msbuild/issues/5558)
  • [ ] [Asynchronous processing of requests](https://github.com/dotnet/msbuild/issues/5559)
M Performance-Scenario-Build 1 User Story performance

Most helpful comment

I have just started working on this issue.

All 7 comments

Any further work on this should be based on #3914.

Are there any future plans to revive the following PRs https://github.com/microsoft/msbuild/pull/3914 and https://github.com/microsoft/msbuild/pull/3868?

I have just started working on this issue.

The work is tracked as a project: https://github.com/dotnet/msbuild/projects/35

The spec document suggests that Bond has been discontinued (therefore PR #3914 was not completed):
https://github.com/dotnet/msbuild/blob/15307131458845313df37549b1e25c5076519809/documentation/specs/rar-as-service.md#L19
Is it correct? I could not find any reference to Bond being discontinued. The latest release was made just 19 days ago: https://github.com/microsoft/bond/releases (brew install bond gave me the latest v9.0.1 of Bond on macOS).

I was also confused by that. But it was pointed out to me, that this is some unusual activity in that repo (https://github.com/microsoft/bond/graphs/code-frequency).

Note: I have converted issue to epic, for tracking purposes

Was this page helpful?
0 / 5 - 0 ratings