This repository was archived by the owner on Nov 1, 2020. It is now read-only.
Dependency Analysis Framework#42
Merged
davidwrighton merged 1 commit intoOct 13, 2015
Merged
Conversation
Member
Author
|
@MichalStrehovsky @jkotas , could the two of you take a look at this? |
Member
There was a problem hiding this comment.
Nit: System.Reflection.Metadata is probably not needed for this.
Dependency analysis allows tracing what output components depend on other components from a root set instead of simply working with a list of already loaded things. This patch adds a framework for performing this computation, but no rules that are specific to compiling ILToNative. That will be follow on work. Included in this change - DependencyAnalyzerBase - Api surface for use of analyzer. - DependencyAnalyzer - Object that should actually be constructed to perform analysis. Not intended for most use, so as to allow dynamic switching between various particular specializations. - Specialized over a mark strategy. (The mark strategy specialization allows log customization) - DependencyNodeCore/DependencyNode - Base type of dependency node in depedency graph. Provides a set of facilities to describe dependents. - IDependencyAnalysisMarkStrategy - Interface underlying mark logging customization. - Provided mark strategies - NoLogStrategy, no support for logging. - Marks, but doesn't log anything. Most memory/performance efficient approach. Expected to be used in retail builds by default for best performance. - FirstMarkLogStrategy, the first edge to mark a node is logged - More memory efficient logging at mark points. In particular, only logs mark's that newly mark a node. - FullGraphLogStrategy - Used when the ability to generate a complete log of the graph is important. Fairly memory intensive due to the presence of a great many allocated hash tables - DgmlWriter - Interfaces with DependencyAnalyzer and various mark strategies to generate a DGML graph of the dependencies. DGML graphs can be viewed in Visual Studio - Tests - Basic unit test framework in place - All types of dependency are tested to minimal standards - DGML logging is tested.
Member
|
LGTM |
davidwrighton
added a commit
that referenced
this pull request
Oct 13, 2015
…rk_update Dependency Analysis Framework
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Dependency analysis allows tracing what output components depend on other components from a root set instead of simply working with a list of already loaded things.
This patch adds a framework for performing this computation, but no rules that are specific to compiling ILToNative. That will be followon work.
Included in this change