/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Tools/IdeBenchmarks/FormatterBenchmarks.cs
63 строки
3 KB
Cyrus Najmabadi
Remove unused usings
18 июн 2025, 22:17
18 июн 2025, 22:17
481c36c
Код
Авторство
О чём код?
// 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. #nullable disable using System.IO; using System.Linq; using System.Threading; using BenchmarkDotNet.Attributes; using Microsoft.CodeAnalysis.Formatting; using Microsoft.CodeAnalysis.Test.Utilities; namespace IdeBenchmarks { [GcServer(true)] public class FormatterBenchmarks { private readonly UseExportProviderAttribute _useExportProviderAttribute = new UseExportProviderAttribute(); [Params( "BoundNodes.xml.Generated", "ErrorFacts.Generated", "Syntax.xml.Internal.Generated", "Syntax.xml.Main.Generated", "Syntax.xml.Syntax.Generated")] public string Document { get; set; } [IterationSetup] public void IterationSetup() => _useExportProviderAttribute.Before(null); [IterationCleanup] public void IterationCleanup() => _useExportProviderAttribute.After(null); [Benchmark] public object FormatCSharp() { var path = Path.Combine(Path.GetFullPath(@"..\..\..\..\..\src\Compilers\CSharp\Portable\Generated"), Document + ".cs"); var text = File.ReadAllText(path); using var workspace = TestWorkspace.CreateCSharp(text); var document = workspace.CurrentSolution.GetDocument(workspace.Documents.First().Id); var root = document.GetSyntaxRootSynchronously(CancellationToken.None); var options = workspace.GlobalOptions.GetSyntaxFormattingOptions(document.Project.Services); return Formatter.GetFormattedTextChanges(root, workspace.Services.SolutionServices, options, CancellationToken.None); } [Benchmark] public object FormatVisualBasic() { var path = Path.Combine(Path.GetFullPath(@"..\..\..\..\..\src\Compilers\VisualBasic\Portable\Generated"), Document + ".vb"); var text = File.ReadAllText(path); using var workspace = TestWorkspace.CreateVisualBasic(text); var document = workspace.CurrentSolution.GetDocument(workspace.Documents.First().Id); var root = document.GetSyntaxRootSynchronously(CancellationToken.None); var options = workspace.GlobalOptions.GetSyntaxFormattingOptions(document.Project.Services); return Formatter.GetFormattedTextChanges(root, workspace.Services.SolutionServices, options, CancellationToken.None); } } }