Incremental builder keeps in a cache at most one `ParsedInput` for each file it parses.
This behavior can be toggled with `useSyntaxTreeCache` parameter.
Memory impact of this feature can be in range of tens of MB for larger solutions. This can be inspected in memory profilng tools by searching for `ParsedInput` instances.
When partial checking is enabled, implementation files backed by signature will not be parsed or cached, as expected.
/// <param name="parallelReferenceResolution">Indicates whether to resolve references in parallel.</param>
/// <param name="captureIdentifiersWhenParsing">When set to true we create a set of all identifiers for each parsed file which can be used to speed up finding references.</param>
/// <param name="documentSource">Default: FileSystem. You can use Custom source to provide a function that will return the source for a given file path instead of reading it from the file system. Note that with this option the FSharpChecker will also not monitor the file system for file changes. It will expect to be notified of changes via the NotifyFileChanged method.</param>
/// <param name="useSyntaxTreeCache">Default: true. Indicates whether to keep parsing results in a cache.</param>
staticmemberCreate:
?projectCacheSize:int*
?keepAssemblyContents:bool*
...
...
@@ -53,7 +54,8 @@ type public FSharpChecker =
?enablePartialTypeChecking:bool*
?parallelReferenceResolution:bool*
?captureIdentifiersWhenParsing:bool*
[<Experimental"This parameter is experimental and likely to be removed in the future.">]?documentSource:DocumentSource->
[<Experimental"This parameter is experimental and likely to be removed in the future.">]?documentSource:DocumentSource*
[<Experimental"This parameter is experimental and likely to be removed in the future.">]?useSyntaxTreeCache:bool->