Граф коммитов

2754 Коммитов

Автор SHA1 Сообщение Дата
Adam Sitnik 804482dea1
Revert "Add support for user-supplied project file detection (#2684)" (#2687)
This reverts commit 1aab1c0d7e.
2025-01-07 14:02:44 -05:00
Adam Sitnik 390463172e
Some minor fixes before new version release (#2686)
* Updated per feedback. Updated the ConfigParser TryParse method to take into account _s in net10.0 and beyond enum names, and updated the ConfigParserTests to take this update into account.

* update Microsoft.CodeAnalysis.CSharp to 4.12.0 to stop referencing an old version of System.Collections.Immutable

* add new test cases, don't remove existing ones

---------

Co-authored-by: Parker Bibus <parkerbibus@microsoft.com>
2025-01-07 17:28:31 +01:00
Ian Qvist 1aab1c0d7e
Add support for user-supplied project file detection (#2684)
* Add support for user-supplied project file detection

* Make ProjectLocator fall back to other locators if enabled

* Implement most of the suggestion

* Use fallback logic instead

* Add a few docs and use default code style

* Include file locator paths in exception message

and rename LocatorArgs to FileLocatorArgs

* Update src/BenchmarkDotNet/Toolchains/CsProj/CsProjGenerator.cs

Co-authored-by: Tim Cassell <35501420+timcassell@users.noreply.github.com>

* Create integration test

* Support .NET Framework csproj tool chain as well

---------

Co-authored-by: Tim Cassell <35501420+timcassell@users.noreply.github.com>
2025-01-07 10:22:33 -05:00
Adeel Mujahid 3337a0936c
Add .NET 10 support (#2642)
* Add .NET 10 support

* Use _

---------

Co-authored-by: Tim Cassell <35501420+timcassell@users.noreply.github.com>
Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com>
2025-01-07 14:08:21 +01:00
Avishai Dotan cac4f6e734
Feature Request: Add ability to automatically hide metric columns if value is not set (#2673)
* Hide the columns described in the issue & add samples for test

* Polish sample names

* remove irrelevant commit from pr

* remove leftovers

* Added some helper classes to inject the configuration into the descriptor handler.
Added attribute parameters instead of checking the metric.Value directly.

* change the injection of configuration

* add tests

* return the singleton pattern

* change private descriptors into internal
Implement descriptorConfigInjector base class to keep the code dry

* remove DescriptorConfigInjector

* remove samples
2025-01-02 02:23:46 -05:00
Adam Sitnik cd50f7b771
add HostSignal.AfterProcessStart to allow the users to obtain ID of a process that was started suspended (#2674) 2024-12-13 09:35:20 +01:00
Tim Cassell fe5b2f5ba6
Fix builds when --keepFiles is specified (#2423)
* Include guid in build artifacts directory when --keepFiles is specified.

* Use an auto-incremented id instead of guid.
Always use same ProgramName regardless of --keepFiles.
Include benchmark assembly name in ProgramName.

* Fix InProcessBenchmarkEmitsSameIL tests.

* Added comment from PR feedback.
2024-12-12 15:45:23 -05:00
Nik Karpinsky 6367ad8417
Add documentation for VS Profiler (#2672)
* Add documentation for VS Profiler

- This change adds documentation for the Visual Studio profiler.
  There is a new document under features that explains how to use the
  nuget package and a new sample under IntroVisualStudioDiagnoser. A new
  package reference has also been added to the samples project to pull
  in the Visual Studio specific diagnosers for the sample project.

* Addressing PR feedback

---------

Co-authored-by: Nik Karpinsky <nikarpin@microsoft.com>
2024-12-09 12:01:16 +01:00
Tim Cassell 5f0c47bfd1
Fix async GlobalSetup/GlobalCleanup not being awaited with InProcessEmit toolchain. (#2109) 2024-11-26 13:54:10 -05:00
Keegan c7ed714a34
Remove obsolete API usage in articles (#2667)
* Remove obsolete API usage in articles

* Apply suggestions from code review

Co-authored-by: Tim Cassell <35501420+timcassell@users.noreply.github.com>

---------

Co-authored-by: Keegan Caruso <keegancaruso@microsoft.com>
Co-authored-by: Tim Cassell <35501420+timcassell@users.noreply.github.com>
2024-11-15 17:21:34 -05:00
Keegan 25308bfc1d
Native AOT projects should also copy SettingsWeWantToCopy (#2665)
Co-authored-by: Keegan Caruso <keegancaruso@microsoft.com>
2024-11-15 13:02:06 -05:00
leonvandermeer b9d69a4393
Prevent premature end of the Benchmark process at Ctrl-C, fixes #2483 (#2661)
* Ensure revert of system state at Benchmark Process termination, fixes #2483

* PowerManagementApplier and ConsoleTitler system state is now reverted at
  Process termination.
* To prevent code duplication, DisposeAtProcessTermination class is
  introduced.

* Apply suggestions from code review and add documentation
2024-11-07 15:46:34 -05:00
Ketan Pramod Kolte 346bbab62a
Fixed: Add validation warning for sealed classes containing benchmarks (#2660)
* Add validation for sealed classes containing benchmarks

* Moved public class validation to CompilationValidator

Co-authored-by: Tim Cassell <35501420+timcassell@users.noreply.github.com>
2024-10-27 02:03:51 -04:00
Adam Sitnik af8bde44bc
Fix known high severity vulnerabilities (#2613)
* workaround known high severity vulnerabilities

* Reverted added dependencies.
Updated dependencies to fix vulnerabilities.
Removed netstandard1.0 target from Annotations.

---------

Co-authored-by: Tim <cassell.timothy@gmail.com>
2024-10-21 17:15:08 -04:00
Vishnu Bhagyanath 6248e85435
improve baseline warning message (#2650) 2024-10-20 17:15:10 -04:00
Saipavan Lingamallu 1f7cab13fc
Update console-args.md (#2657)
Replaced ilcPath with ilcPackages
2024-10-20 17:13:12 -04:00
Ketan Pramod Kolte 9ff49c6795
Fixed GitHub workflow report for failed tests (#2653)
* changed target framework to .net 8.0

* Added a failing test

* Update run-tests.yaml

* try again

* changed yaml files

* Revert "try again"

This reverts commit 1995f60de5.

* Revert "Added a failing test"

This reverts commit 1bcb1a1902.

* Final yaml files

* added target framework back for PR
2024-10-18 13:12:36 -04:00
Adam Sitnik 9040e40187
add RiscV64 support, fixes #2644 (#2647) 2024-09-25 16:33:53 +02:00
Cameron Aavik 52485ecf56
Get full parsable version part (#2646) 2024-09-23 22:01:43 -04:00
Cameron Aavik 5fe0c78539
Change .NET SDK Validator to account for backwards compatibility (#2645) 2024-09-23 14:48:30 -04:00
Adeel Mujahid adf8e6d3e2
Add DOTNET_ environment vars (#2643)
* Add DOTNET_ environment vars

* Update tests/BenchmarkDotNet.IntegrationTests/MemoryDiagnoserTests.cs

---------

Co-authored-by: Tim Cassell <35501420+timcassell@users.noreply.github.com>
2024-09-22 17:19:03 -04:00
Tim Cassell 3a2d115ace
Removed support for netcoreapp3.0 and older runtimes. (#2505) 2024-09-17 13:05:13 -04:00
Tim Cassell bc3abf9e69
Update clrmd to 3.1 (#2488) 2024-09-17 10:06:43 +02:00
Michal Strehovský ca5dfdf106
Clean up unsupported native AOT flags (#2616)
* Clean up unsupported native AOT flags

* `llcOptimizationPreference` was renamed to `OptimizationPreference` and became supported in .NET 8 (or maybe .NET 7, it doesn't matter)
* `IlcGenerateStackTraceData` is now `StackTraceSupport` and supported. (Also got renamed in .NET 8 or earlier.)

I'm leaving the old names of properties for backcompat. We could also delete them. I don't know how much BDN cares about .NET versions that are out of support.

IlcGenerateCompleteTypeMetadata is unsupported, we don't test it, it's a mode for troubleshooting trimming issues for people who ignore trimming warnings. I don't think BDN should be setting this. You'll only find bugs (https://github.com/dotnet/runtime/issues/106439). So deleting that. Not deleting the API because it looks to be a public API.

Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
2024-08-28 15:59:23 +02:00
Andrey Akinshin 475ab4518c Move Smoke benchmarks to BenchmarkDotNet.Samples
IntroSmokeIncrements was taken from https://github.com/dotnet/BenchmarkDotNet/pull/2334#issuecomment-1988673372
2024-08-28 09:56:35 +02:00
Andrey Akinshin 92f33f21cb Refactor dotTrace and dotMemory diagnosers
All the common logic of profilers moved into `SnapshotProfilerBase` which is the base for `DotMemoryDiagnoser` and `DotTraceDiagnoser`. The common class is inside the main package, so it can be reused by other tools (not only by JetBrains, applicable for any command-line profiler). The dotTrace/dotMemory diagnoser classes have unique simple implementation. `IsSupported` is duplicated on purpose since future versions of dotTrace and dotMemory may have different sets of supported runtimes.
2024-08-28 09:39:29 +02:00
Andrey Akinshin 296c9962c1 Remove ConfigCompatibilityValidator, fix #2599 2024-08-27 20:58:01 +02:00
Andrey Akinshin ae4bb9ba1b Bump Perfolizer + Initial Phd adoption
This commit is a first step of the grand API refactoring.

* Cpu Detection Upgrade
  * All CPU-related detection logic moved from RuntimeInformation to CpuDetector
  * BrandString formatting moved to Perfolizer (see CpuBrandHelper)
  * New serializable class for Cpu information: PhdCpu from Perfolizer
* Os Detection Upgrade
  * All OS-related detection logic moved from RuntimeInformation to OsDetector
  * BrandString formatting moved to Perfolizer (see OsBrandHelper)
  * New serializable class for Os information: PhdOs from Perfolizer
* Initial adoption of Phd (Performance History Data)
  * Phd from Perfolizer is our future way to keep and process gathered data and measurements
  * Only the initial implementation is available, it still misses a lot of features
  * Examples of Phd json and corresponding new Summary Tables are in
    BenchmarkDotNet/tests/BenchmarkDotNet.Tests/Phd/VerifiedFiles/Phd.PhdTableTest*
  * Phd can be tried via [PhdExporter]
  * Documentation is coming once we have a more complete implementation
2024-08-27 20:51:43 +02:00
Andrey Akinshin a58872b827 Make lscpu call language-invariant, fix #2577 2024-08-26 19:17:58 +02:00
Andrey Akinshin 5e9b35abed Fix lscpu cpu frequency parsing 2024-08-26 15:20:08 +02:00
Andrey Akinshin 64b3d85222 Refactor CpuInfo detection, fix #2577 2024-08-26 00:22:53 +02:00
Andrey Akinshin d2f73e8a65 Bump .NET SDK: 8.0.101->8.0.401 2024-08-25 12:56:17 +02:00
Andrew Chisholm cd9e4e93c3 Feature - Added Box plots
Also improved readability by setting most font sizes to 14 by default (customisable)
2024-08-25 12:55:49 +02:00
Andrew Chisholm 3927ce7b5b
Fix #2611 - Add Iteration mode and stage filtering to ScottPlotExporter (#2612)
* Fix #2611 - Add Iteration mode and stage filtering

* Fix #2611 - Also choose time scale based on results
2024-08-25 12:51:46 +02:00
Steve Dunn 29a0ebb258
Update good-practices.md (#2618) 2024-08-25 11:43:25 +02:00
Korexio c8105aab56
Fix deadlock in GetDotNetSdkVersion (#2622)
* Fix deadlock in GetDotNetSdkVersion

* Remove newline at the end of file
2024-08-22 14:09:16 -04:00
Andrey Akinshin a739e2cc9a Set next BenchmarkDotNet version: 0.14.1 2024-08-06 16:44:48 +02:00
Andrey Akinshin cf882d378d Add macOS Sequoia in OsBrandStringHelper 2024-08-06 15:56:47 +02:00
Andrey Akinshin 17cf3b0a71 [docs] Prepare v0.14.0 changelog 2024-08-06 15:56:47 +02:00
Andrey Akinshin b3fbe7c489 Set next BenchmarkDotNet version: 0.14.0 2024-08-06 15:56:47 +02:00
Andrey Akinshin 23e6c523cf Fix InvalidOperationException in DotMemoryDiagnoser
If a DotMemoryDiagnoser instance is reused and previous AfterActualRun failed,
we shouldn't throw on the second attempt to init the tool
2024-08-06 15:38:44 +02:00
Andrey Akinshin 3d34edb219 Bump JetBrains.Profiler.SelfApi: 2.5.2->2.5.9
Support latest dotTrace and dotMemory
2024-08-06 14:52:51 +02:00
workgroupengineering bf0a49d1f5
fix(CI): Deprecation issues (#2605)
* fix(CI): Deprecation issues

* fix: missing
2024-08-05 13:25:19 -04:00
Tim Cassell 0275649d35
Fixed crash from TaskbarProgress when BuiltInComInteropSupport is disabled. (#2255)
Fixed terminal sequence printed to console in legacy console.
Include progress in error and warning states.
2024-07-20 10:16:11 +02:00
Andrey Akinshin 15200d46a1 [build] Add BenchmarkDotNet.Exporters.Plotting.Tests to unit-tests 2024-07-20 10:13:52 +02:00
Andrey Akinshin 834417a7db Improve logging in ScottPlotExporterTests 2024-07-20 10:03:05 +02:00
Andrey Akinshin f8082a2138 Fix IntroSummaryStyle compilation 2024-07-20 10:01:19 +02:00
Andrew Chisholm e933bb0077
Initial ScottPlotExporter with just Bar Plot and Unit Tests (#2560)
* Initial ScottPlotExporter with just Bar Plot and Unit Tests

* Simplifying project settings, added missing common.props, adde some documentation for config settings.

* Removed redundant warning suppressions

* Fix missing public documentation

* Removed redundant condition

* Update tests/BenchmarkDotNet.Exporters.Plotting.Tests/BenchmarkDotNet.Exporters.Plotting.Tests.csproj

---------

Co-authored-by: Tim Cassell <35501420+timcassell@users.noreply.github.com>
2024-07-20 09:57:01 +02:00
Matt Chaulklin 20e2ee7ded
Docs for SummaryStyle (#2510)
* Added SummaryStyle doc and sample

* Fixed link to source code

* correct spelling
2024-07-20 09:40:01 +02:00
Kenneth Cochran 01d9b7889e
Update README.md (#2583)
Made simplicity verbiage more inclusive
2024-07-11 15:56:34 -04:00