Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
e3815c3f
R
roslyn
项目概览
lwm1986
/
roslyn
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
roslyn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e3815c3f
编写于
2月 06, 2020
作者:
G
Gen Lu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix SourceBuild
上级
b2224f71
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
121 addition
and
0 deletion
+121
-0
src/Compilers/Core/Portable/InternalUtilities/PerformanceSensitiveAttribute.cs
...rtable/InternalUtilities/PerformanceSensitiveAttribute.cs
+117
-0
src/Compilers/Core/Portable/Microsoft.CodeAnalysis.csproj
src/Compilers/Core/Portable/Microsoft.CodeAnalysis.csproj
+4
-0
未找到文件。
src/Compilers/Core/Portable/InternalUtilities/PerformanceSensitiveAttribute.cs
0 → 100644
浏览文件 @
e3815c3f
// <auto-generated />
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using
System
;
using
System.Diagnostics
;
namespace
Roslyn.Utilities
{
/// <summary>
/// Indicates that a code element is performance sensitive under a known scenario.
/// </summary>
/// <remarks>
/// <para>When applying this attribute, only explicitly set the values for properties specifically indicated by the
/// test/measurement technique described in the associated <see cref="Uri"/>.</para>
/// </remarks>
[
Conditional
(
"EMIT_CODE_ANALYSIS_ATTRIBUTES"
)]
[
AttributeUsage
(
AttributeTargets
.
Constructor
|
AttributeTargets
.
Method
|
AttributeTargets
.
Property
|
AttributeTargets
.
Field
,
AllowMultiple
=
true
,
Inherited
=
false
)]
internal
sealed
class
PerformanceSensitiveAttribute
:
Attribute
{
public
PerformanceSensitiveAttribute
(
string
uri
)
{
Uri
=
uri
;
}
/// <summary>
/// Gets the location where the original problem is documented, likely with steps to reproduce the issue and/or
/// validate performance related to a change in the method.
/// </summary>
public
string
Uri
{
get
;
}
/// <summary>
/// Gets or sets a description of the constraint imposed by the original performance issue.
/// </summary>
/// <remarks>
/// <para>Constraints are normally specified by other specific properties that allow automated validation of the
/// constraint. This property supports documenting constraints which cannot be described in terms of other
/// constraint properties.</para>
/// </remarks>
public
string
Constraint
{
get
;
set
;
}
/// <summary>
/// Gets or sets a value indicating whether captures are allowed.
/// </summary>
public
bool
AllowCaptures
{
get
;
set
;
}
/// <summary>
/// Gets or sets a value indicating whether implicit boxing of value types is allowed.
/// </summary>
public
bool
AllowImplicitBoxing
{
get
;
set
;
}
/// <summary>
/// Gets or sets a value indicating whether enumeration of a generic
/// <see cref="System.Collections.Generic.IEnumerable{T}"/> is allowed.
/// </summary>
public
bool
AllowGenericEnumeration
{
get
;
set
;
}
/// <summary>
/// Gets or sets a value indicating whether locks are allowed.
/// </summary>
public
bool
AllowLocks
{
get
;
set
;
}
/// <summary>
/// Gets or sets a value indicating whether the asynchronous state machine typically completes synchronously.
/// </summary>
/// <remarks>
/// <para>When <see langword="true"/>, validation of this performance constraint typically involves analyzing
/// the method to ensure synchronous completion of the state machine does not require the allocation of a
/// <see cref="System.Threading.Tasks.Task"/>, either through caching the result or by using
/// <see cref="System.Threading.Tasks.ValueTask{TResult}"/>.</para>
/// </remarks>
public
bool
OftenCompletesSynchronously
{
get
;
set
;
}
/// <summary>
/// Gets or sets a value indicating whether this is an entry point to a parallel algorithm.
/// </summary>
/// <remarks>
/// <para>Parallelization APIs and algorithms, e.g. <c>Parallel.ForEach</c>, may be efficient for parallel entry
/// points (few direct calls but large amounts of iterative work), but are problematic when called inside the
/// iterations themselves. Performance-sensitive code should avoid the use of heavy parallelization APIs except
/// for known entry points to the parallel portion of code.</para>
/// </remarks>
public
bool
IsParallelEntry
{
get
;
set
;
}
}
}
\ No newline at end of file
src/Compilers/Core/Portable/Microsoft.CodeAnalysis.csproj
浏览文件 @
e3815c3f
...
...
@@ -46,6 +46,10 @@
<PackageReference
Include=
"System.Threading.Tasks.Extensions"
Version=
"$(SystemThreadingTasksExtensionsVersion)"
/>
<PackageReference
Include=
"System.Text.Encoding.CodePages"
Version=
"$(SystemTextEncodingCodePagesVersion)"
/>
</ItemGroup>
<ItemGroup>
<!-- Need to include the PerformanceSensitiveAttribute definition in source build, since we can't get it from the analyzer package. -->
<Compile
Remove=
"InternalUtilities\PerformanceSensitiveAttribute.cs"
Condition=
"'$(DotNetBuildFromSource)' != 'true'"
/>
</ItemGroup>
<ItemGroup>
<InternalsVisibleTo
Include=
"Microsoft.CodeAnalysis.CSharp"
/>
<InternalsVisibleTo
Include=
"Microsoft.CodeAnalysis.VisualBasic"
/>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录