🖥 Сравнение string и Span. Часть 2. Trim, TrimStart, TrimEnd, CompareTo, Equals
English version is below.
Продолжаю сравнивать методы string и ReadOnlySpan<char>.
По результатам бенчмарка, методы Trim, TrimStart, TrimEnd в ReadOnlySpan<char> в среднем на 40% быстрее, чем в string. Ничего удивительного нет, т.к. использование этих же методов в string приводит к аллокациям памяти.
Метод string.CompareTo во всех случаях быстрее, правда незначительно. При использовании StringComparison.Ordinal эта разница достигает 88%.
Метод Equals в ReadOnlySpan<char> демонстрирует сопоставимую производительность с string при использовании CurrentCulture, InvariantCulture и других типах сравнения. Однако при использовании OrdinalIgnoreCase string быстрее ~25%.
👩💻 Код и результаты
String and Span comparison. Part 2. Trim, TrimStart, TrimEnd, CompareTo, Equals
I continue to compare the string and ReadOnlySpan<char> methods.
According to the benchmark results, Trim, TrimStart, and TrimEnd methods in ReadOnlySpan<char> are, on average, 40% faster than in string. This is not surprising, because using these methods in string causes memory allocations.
CompareTo is faster in string in all cases, although only slightly. But when using StringComparison.Ordinal, the difference reaches 88%.
Equals in ReadOnlySpan<char> shows comparable performance to string when using all comparison types except OrdinalIgnoreCase. In this case string is ~25% faster.
👩💻 Code and results
Post #142
384


- 👍 7