/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Tools/IdeCoreBenchmarks/RenameBenchmarks.cs
64 строки
2 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; using System.IO; using System.Linq; using BenchmarkDotNet.Attributes; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Rename; namespace IdeCoreBenchmarks { [MemoryDiagnoser] public class RenameBenchmarks { private Solution _solution; private ISymbol _symbol; private string _csFilePath; [GlobalSetup] public void GlobalSetup() { var roslynRoot = Environment.GetEnvironmentVariable(Program.RoslynRootPathEnvVariableName); _csFilePath = Path.Combine(roslynRoot, @"src\Compilers\CSharp\Portable\Generated\BoundNodes.xml.Generated.cs"); if (!File.Exists(_csFilePath)) { throw new ArgumentException(); } } [IterationSetup] public void IterationSetup() { var projectId = ProjectId.CreateNewId(); var documentId = DocumentId.CreateNewId(projectId); _solution = new AdhocWorkspace().CurrentSolution .AddProject(projectId, "ProjectName", "AssemblyName", LanguageNames.CSharp) .AddDocument(documentId, "DocumentName", File.ReadAllText(_csFilePath)); var project = _solution.Projects.First(); var compilation = project.GetCompilationAsync().Result; _symbol = compilation.GetTypeByMetadataName("Microsoft.CodeAnalysis.CSharp.BoundKind"); } [Benchmark] public void RenameNodes() { _ = Renamer.RenameSymbolAsync(_solution, _symbol, new SymbolRenameOptions(), "NewName"); } [IterationCleanup] public void Cleanup() { _solution = null; _symbol = null; } } }