This repository was archived by the owner on Feb 23, 2026. It is now read-only.
Description Processing dotnet/runtime#123434 (comment) command:
Command -amd -intel
using System . Runtime . CompilerServices ; using System . Text ; using BenchmarkDotNet . Attributes ; using BenchmarkDotNet . Running ; BenchmarkRunner . Run < ContainsTrue > ( ) ; public class ContainsTrue { private string [ ] _found ; private string [ ] _array ; private List < string > _list ; [ Params ( 512 ) ] public int Size ; [ GlobalSetup ( Targets = new [ ] { nameof ( Array ) } ) ] public void SetupArray ( ) { _found = ArrayOfUniqueValues ( Size ) ; _array = _found . ToArray ( ) ; } [ Benchmark ] public bool Array ( ) { bool result = default ; string [ ] collection = _array ; string [ ] found = _found ; for ( int i = 0 ; i < found . Length ; i ++ ) result ^= collection . Contains ( found [ i ] ) ; return result ; } [ GlobalSetup ( Targets = new [ ] { nameof ( ICollection ) } ) ] public void SetupList ( ) { _found = ArrayOfUniqueValues ( Size ) ; _list = new List < string > ( _found ) ; } [ Benchmark ] public bool ICollection ( ) => Contains ( _list ) ; [ MethodImpl ( MethodImplOptions . NoInlining ) ] private bool Contains ( ICollection < string > collection ) { bool result = default ; string [ ] found = _found ; for ( int i = 0 ; i < found . Length ; i ++ ) result ^= collection . Contains ( found [ i ] ) ; return result ; } private static string [ ] ArrayOfUniqueValues ( int count ) { string [ ] result = new string [ count ] ; var random = new Random ( 42 ) ; var uniqueValues = new HashSet < string > ( ) ; while ( uniqueValues . Count != count ) { string value = GenerateRandomString ( random , 1 , 50 ) ; if ( ! uniqueValues . Contains ( value ) ) uniqueValues . Add ( value ) ; } uniqueValues . CopyTo ( result ) ; return result ; } private static string GenerateRandomString ( Random random , int minLength , int maxLength ) { var length = random . Next ( minLength , maxLength ) ; var builder = new StringBuilder ( length ) ; for ( int i = 0 ; i < length ; i ++ ) { var rangeSelector = random . Next ( 0 , 3 ) ; if ( rangeSelector == 0 ) builder . Append ( ( char ) random . Next ( 'a' , 'z' ) ) ; else if ( rangeSelector == 1 ) builder . Append ( ( char ) random . Next ( 'A' , 'Z' ) ) ; else builder . Append ( ( char ) random . Next ( '0' , '9' ) ) ; } return builder . ToString ( ) ; } } (EgorBot will reply in this issue )
Reactions are currently unavailable
Processing dotnet/runtime#123434 (comment) command:
Command
-amd -intel
(EgorBot will reply in this issue)