Skip to content

Commit

Permalink
Merge pull request #58314 from dotnet/merges/main-to-features/rename_…
Browse files Browse the repository at this point in the history
…ui_rework

Merge main to features/rename_ui_rework
  • Loading branch information
dotnet-bot authored Dec 14, 2021
2 parents 2e9e63e + 498d5b1 commit b0f1a6d
Show file tree
Hide file tree
Showing 39 changed files with 78,948 additions and 184 deletions.
6 changes: 3 additions & 3 deletions docs/wiki/Recording-performance-traces-with-PerfView.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ In some scenarios, users may wish to collect performance traces using the PerfVi

Instructions for manually recording with PerfView:

1. Download [PerfView](http://www.microsoft.com/en-us/download/details.aspx?id=28567) and save it to a temporary directory
1. Download [PerfView](https://github.com/Microsoft/perfview/blob/main/documentation/Downloading.md) and save it to a temporary directory
1. If using one of the predefined command lines below, review the section to identify the best time to start and stop measuring for the problem at hand and type of recording
1. Create the directory **C:\temp** if it doesn't exist (or change the following instructions to use a different directory)
1. From an administrative command prompt, start a PerfView collection using one of the command line sequences from defined below
Expand All @@ -20,15 +20,15 @@ Instructions for manually recording with PerfView:

This performance trace performs well for gathering general information during an interval of 100 seconds or more, depending on resource usage during the interval.

perfview.exe collect C:\temp\ReproTrace.etl -CircularMB:4096 -BufferSizeMB:256 -Merge:true -Zip:true -Providers:641d7f6c-481c-42e8-ab7e-d18dc5e5cb9e,*Microsoft-VisualStudio-Common,*RoslynEventSource,*StreamJsonRpc,.NETTasks:0:0 -ThreadTime -NoV2Rundown -NoNGenRundown
perfview.exe collect C:\temp\ReproTrace.etl -CircularMB:4096 -BufferSizeMB:256 -Merge:true -Zip:true -Providers:641d7f6c-481c-42e8-ab7e-d18dc5e5cb9e,*Microsoft-VisualStudio-Common,*RoslynEventSource,*StreamJsonRpc -ThreadTime -NoV2Rundown -NoNGenRundown

## CPU Only

This performance trace gathers CPU usage information only. It supports longer trace durations than the general purpose trace, but is only useful in resolving a subset of performance problems users encounter. Information about delays caused by non-CPU situations (e.g. network operations, disk operations, various waits, etc.) are not captured in the trace.

⚠️ This performance trace is unable to gather information about hangs or UI delays. It should only be used in cases where the General Purpose command failed to produce the desired result.

perfview.exe collect C:\temp\ReproTrace.etl -CircularMB:4096 -BufferSizeMB:256 -Merge:true -Zip:true -Providers:641d7f6c-481c-42e8-ab7e-d18dc5e5cb9e,*Microsoft-VisualStudio-Common,*RoslynEventSource,*StreamJsonRpc,.NETTasks:0:0 -NoV2Rundown -NoNGenRundown
perfview.exe collect C:\temp\ReproTrace.etl -CircularMB:4096 -BufferSizeMB:256 -Merge:true -Zip:true -Providers:641d7f6c-481c-42e8-ab7e-d18dc5e5cb9e,*Microsoft-VisualStudio-Common,*RoslynEventSource,*StreamJsonRpc -NoV2Rundown -NoNGenRundown

## GC Only

Expand Down
4 changes: 2 additions & 2 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@
<Sha>18adc5b47acce8bb03948baf578fca442d1029d4</Sha>
<SourceBuild RepoName="arcade" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="4.1.0-2.21574.9">
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="4.1.0-2.21609.7">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>16333a806a64c3546faf0320063b66ff32936eaa</Sha>
<Sha>818313426323d979747781a17c78860c833776da</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.21610.4">
<Uri>https://github.com/dotnet/arcade</Uri>
Expand Down
2 changes: 1 addition & 1 deletion eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
</MajorVersion>
<MinorVersion>
</MinorVersion>
<MicrosoftNetCompilersToolsetVersion>4.1.0-2.21574.9</MicrosoftNetCompilersToolsetVersion>
<MicrosoftNetCompilersToolsetVersion>4.1.0-2.21609.7</MicrosoftNetCompilersToolsetVersion>
</PropertyGroup>
<PropertyGroup>
<!-- Versions used by several individual references below -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,8 @@ public CSharpOperationFactory(SemanticModel semanticModel)
return CreateBoundAwaitExpressionOperation((BoundAwaitExpression)boundNode);
case BoundKind.ArrayAccess:
return CreateBoundArrayAccessOperation((BoundArrayAccess)boundNode);
case BoundKind.ImplicitIndexerAccess:
return CreateBoundImplicitIndexerAccessOperation((BoundImplicitIndexerAccess)boundNode);
case BoundKind.NameOfOperator:
return CreateBoundNameOfOperatorOperation((BoundNameOfOperator)boundNode);
case BoundKind.ThrowExpression:
Expand Down Expand Up @@ -304,7 +306,6 @@ public CSharpOperationFactory(SemanticModel semanticModel)
case BoundKind.StackAllocArrayCreation:
case BoundKind.TypeExpression:
case BoundKind.TypeOrValueExpression:
case BoundKind.ImplicitIndexerAccess:

ConstantValue? constantValue = (boundNode as BoundExpression)?.ConstantValue;
bool isImplicit = boundNode.WasCompilerGenerated;
Expand Down Expand Up @@ -1486,6 +1487,28 @@ private IArrayElementReferenceOperation CreateBoundArrayAccessOperation(BoundArr
return new ArrayElementReferenceOperation(arrayReference, indices, _semanticModel, syntax, type, isImplicit);
}

private IOperation CreateBoundImplicitIndexerAccessOperation(BoundImplicitIndexerAccess boundIndexerAccess)
{
IOperation instance = Create(boundIndexerAccess.Receiver);
IOperation argument = Create(boundIndexerAccess.Argument);
SyntaxNode syntax = boundIndexerAccess.Syntax;
ITypeSymbol? type = boundIndexerAccess.GetPublicTypeSymbol();
bool isImplicit = boundIndexerAccess.WasCompilerGenerated;

if (boundIndexerAccess.LengthOrCountAccess.Kind == BoundKind.ArrayLength)
{
return new ArrayElementReferenceOperation(instance, ImmutableArray.Create(argument), _semanticModel, syntax, type, isImplicit);
}

var lengthSymbol = Binder.GetPropertySymbol(boundIndexerAccess.LengthOrCountAccess, out _, out _).GetPublicSymbol();
var indexerSymbol = Binder.GetIndexerOrImplicitIndexerSymbol(boundIndexerAccess).GetPublicSymbol();

Debug.Assert(lengthSymbol is not null);
Debug.Assert(indexerSymbol is not null);

return new ImplicitIndexerReferenceOperation(instance, argument, lengthSymbol, indexerSymbol, _semanticModel, syntax, type, isImplicit);
}

private INameOfOperation CreateBoundNameOfOperatorOperation(BoundNameOfOperator boundNameOfOperator)
{
IOperation argument = Create(boundNameOfOperator.Argument);
Expand Down
Loading

0 comments on commit b0f1a6d

Please sign in to comment.