Skip to content
This repository has been archived by the owner on Dec 18, 2017. It is now read-only.

Several DTH and compilation performance improvements #2827

Closed
wants to merge 2 commits into from

Conversation

davidfowl
Copy link
Member

There were some general regressions from beta7 to beta8 wrt performance of DTH and compilation. This fix intends to rectify thoseand also improve on some of the older logic (<= beta7)

  • Don't create the build time load context until required. For it's
    not needed unless a compile module is being loaded or a custom compiler
    is being loaded.
  • The LibraryExporter no longer holds onto the build load context
  • Fixed a disposal caching bug
  • Nuke IProjectGraphProvider because it provided no real value
  • Made ProjectExportContext which acts as a disposable cache entry
    for the build time load context.
  • Added friendly name to LoadContext for easy debugging
  • Removed background compilation from DTH as it was harmful for large
    solutions. Things are only compiled on demand now.
  • ProjectAssemblyLoader will only take the subset of project that it needs
    OOM when using MVC solution in VS #2681

/cc @rynowak @troydai

- There were some general regressions from beta7 to beta8 wrt
performance of DTH and compilation. This fix intends to rectify those
and also improve some on some of the older logic (<= beta7)
- Don't create the build time load context until required. For it's
not needed unless a compile module is being loaded or a custom compiler
is being loaded.
- The LibraryExporter no longer holds onto the build load context
- Fixed a disposal caching bug
- Nuke IProjectGraphProvider because it provided no real value
- Made ProjectExportContext which acts as a disposable cache entry
for the build time load context.
- Added friendly name to LoadContext for easy debugging
- Removed background compilation from DTH as it was harmful for large
solutions. Things are only compiled on demand now.
- ProjectAssemblyLoader will only take the subset of project that it needs

#2681
@@ -0,0 +1,83 @@
using System;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

License and registration please.

@rynowak
Copy link
Member

rynowak commented Sep 25, 2015

:shipit: after fixing minor issues

ICompilationEngine compilationEngine,
IAssemblyLoadContext defaultContext)
IAssemblyLoadContext defaultContext) : base(friendlyName)
{
// TODO: Make this all lazy
// TODO: Unify this logic with default host
var projects = libraries.Where(p => p.Type == LibraryTypes.Project)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just use OfType<ProjectDescription> could be enough, right?

@troydai
Copy link
Contributor

troydai commented Sep 25, 2015

:shipit:

@davidfowl davidfowl closed this Sep 25, 2015
@davidfowl davidfowl deleted the davidfowl/dth-oom branch September 25, 2015 17:51
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants