-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
39 changed files
with
141 additions
and
59 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,64 +9,89 @@ | |
|
||
|
||
namespace Benchmark { | ||
|
||
/// <summary> | ||
/// Contains benchmarks for the StringExtension methods. | ||
/// </summary> | ||
[MemoryDiagnoser(false)] | ||
public class StringExtensionBenchmark { | ||
private readonly string input = "hello world!"; | ||
private readonly char[] charactersToRemove = {'l', 'o'}; | ||
private readonly string oldValue = "world"; | ||
private readonly string newValue = "everyone"; | ||
|
||
private readonly string input = "hello world!"; | ||
private readonly char[] charactersToRemove = { 'l', 'o' }; | ||
private readonly string substring = "l"; | ||
|
||
private readonly string phoneNumber = "555-555-5555"; | ||
private readonly string email = "[email protected]"; | ||
|
||
/// <summary> | ||
/// Benchmark for the RemoveCharacters method. | ||
/// </summary> | ||
[Benchmark] | ||
public string RemoveCharacters() { | ||
return input.RemoveCharacters(charactersToRemove); | ||
} | ||
|
||
/// <summary> | ||
/// Benchmark for the IsValidEmail method. | ||
/// </summary> | ||
[Benchmark] | ||
public bool IsValidEmail() { | ||
return email.IsValidEmail(); | ||
} | ||
|
||
/// <summary> | ||
/// Benchmark for the IsValidPhoneNumber method. | ||
/// </summary> | ||
[Benchmark] | ||
public bool IsValidPhoneNumber() { | ||
string phoneNumber = "555-555-5555"; | ||
return phoneNumber.IsValidPhoneNumber(); | ||
} | ||
|
||
/// <summary> | ||
/// Benchmark for the CountSubstring method. | ||
/// </summary> | ||
[Benchmark] | ||
public int CountSubstring() { | ||
return input.CountSubstring(substring); | ||
} | ||
|
||
/// <summary> | ||
/// Benchmark for the ReverseWords method. | ||
/// </summary> | ||
[Benchmark] | ||
public string ReverseWords() { | ||
return input.ReverseWords(); | ||
} | ||
|
||
/// <summary> | ||
/// Benchmark for the IsPalindrome method. | ||
/// </summary> | ||
[Benchmark] | ||
public bool IsPalindrome() { | ||
string palindrome = "racecar"; | ||
return palindrome.IsPalindrome(); | ||
return input.IsPalindrome(); | ||
} | ||
|
||
/// <summary> | ||
/// Benchmark for the CountLetters method. | ||
/// </summary> | ||
[Benchmark] | ||
public int CountLetters() { | ||
return input.CountLetters(); | ||
} | ||
|
||
/// <summary> | ||
/// Benchmark for the RemoveDuplicateCharacters method. | ||
/// </summary> | ||
[Benchmark] | ||
public string RemoveDuplicateCharacters() { | ||
return input.RemoveDuplicateCharacters(); | ||
} | ||
|
||
/// <summary> | ||
/// Benchmark for the ConvertToCamelCase method. | ||
/// </summary> | ||
[Benchmark] | ||
public string ConvertToCamelCase() { | ||
string text = "hello_world"; | ||
return text.ToCamelCase(); | ||
return input.ToCamelCase(); | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
18 changes: 9 additions & 9 deletions
18
...ug/net7.0/BenchmarkDotNet.Artifacts/results/Benchmark.StringExtensionBenchmark-report.csv
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,10 @@ | ||
Method;Job;AnalyzeLaunchVariance;EvaluateOverhead;MaxAbsoluteError;MaxRelativeError;MinInvokeCount;MinIterationTime;OutlierMode;Affinity;EnvironmentVariables;Jit;LargeAddressAware;Platform;PowerPlanMode;Runtime;AllowVeryLargeObjects;Concurrent;CpuGroups;Force;HeapAffinitizeMask;HeapCount;NoAffinitize;RetainVm;Server;Arguments;BuildConfiguration;Clock;EngineFactory;NuGetReferences;Toolchain;IsMutator;InvocationCount;IterationCount;IterationTime;LaunchCount;MaxIterationCount;MaxWarmupIterationCount;MemoryRandomization;MinIterationCount;MinWarmupIterationCount;RunStrategy;UnrollFactor;WarmupCount;Mean;Error;StdDev;Allocated | ||
RemoveCharacters;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;305.79 ns;5.967 ns;8.168 ns;328 B | ||
IsValidEmail;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;79.97 ns;1.640 ns;4.625 ns;0 B | ||
IsValidPhoneNumber;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;170.67 ns;3.396 ns;5.083 ns;0 B | ||
CountSubstring;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;64.06 ns;0.470 ns;0.417 ns;40 B | ||
ReverseWords;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;44.00 ns;0.954 ns;1.949 ns;152 B | ||
IsPalindrome;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;416.24 ns;8.134 ns;16.245 ns;536 B | ||
CountLetters;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;104.75 ns;0.732 ns;0.612 ns;32 B | ||
RemoveDuplicateCharacters;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;253.15 ns;3.618 ns;3.021 ns;624 B | ||
ConvertToCamelCase;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;45.49 ns;0.214 ns;0.167 ns;48 B | ||
RemoveCharacters;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;368.67 ns;7.008 ns;17.058 ns;328 B | ||
IsValidEmail;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;96.72 ns;2.697 ns;7.868 ns;0 B | ||
IsValidPhoneNumber;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;191.88 ns;3.883 ns;10.758 ns;0 B | ||
CountSubstring;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;63.27 ns;1.306 ns;1.603 ns;40 B | ||
ReverseWords;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;46.03 ns;0.977 ns;1.432 ns;152 B | ||
IsPalindrome;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;648.51 ns;12.651 ns;19.319 ns;648 B | ||
CountLetters;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;123.07 ns;2.478 ns;6.396 ns;32 B | ||
RemoveDuplicateCharacters;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;326.46 ns;6.632 ns;19.555 ns;624 B | ||
ConvertToCamelCase;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;65.63 ns;1.386 ns;1.753 ns;48 B |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified
BIN
+0 Bytes
(100%)
Benchmarks/obj/Debug/net7.0/Benchmarks.csproj.AssemblyReference.cache
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified
BIN
+0 Bytes
(100%)
Benchmarks/obj/Release/net7.0/Benchmarks.csproj.AssemblyReference.cache
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Oops, something went wrong.