CSHARP_GEPARD Telegram 90
Поиск строки в массиве #скорость

В комментариях заметили интересное поведение при поиске строки в массиве. Если сделать Array.IndexOf по массиву строк, то скорость получается несколько ниже простого перебора в foreach со сравнением через Equals.

Было предположение, что проблема в EqualityComparer<string>.Default (который, на самом деле GenericEqualityComparer<string>), но и это оказалось не верным предположением. То есть проблема где-то в Array.IndexOf.

Оказалось верным подтвержденное бенчмарком предложение, что проблема в JIT:

Предполагаю, что в случае выделения цикла в отдельный метод, JIT оптимизатор находит какой-то паттерн применения и выполняет оптимизацию.



То есть если переписать метод особым образом, то скорость будет норм. Предположение основано на статье, описывающей оптимизации в JIT.

Бенчмарк в комментах. Бенчмарк с предположением там же. Коллеги, также, написали репорт о проблемах с производительностью.
👍13🤯2



tgoop.com/csharp_gepard/90
Create:
Last Update:

Поиск строки в массиве #скорость

В комментариях заметили интересное поведение при поиске строки в массиве. Если сделать Array.IndexOf по массиву строк, то скорость получается несколько ниже простого перебора в foreach со сравнением через Equals.

Было предположение, что проблема в EqualityComparer<string>.Default (который, на самом деле GenericEqualityComparer<string>), но и это оказалось не верным предположением. То есть проблема где-то в Array.IndexOf.

Оказалось верным подтвержденное бенчмарком предложение, что проблема в JIT:

Предполагаю, что в случае выделения цикла в отдельный метод, JIT оптимизатор находит какой-то паттерн применения и выполняет оптимизацию.



То есть если переписать метод особым образом, то скорость будет норм. Предположение основано на статье, описывающей оптимизации в JIT.

Бенчмарк в комментах. Бенчмарк с предположением там же. Коллеги, также, написали репорт о проблемах с производительностью.

BY C# Heppard




Share with your friend now:
tgoop.com/csharp_gepard/90

View MORE
Open in Telegram


Telegram News

Date: |

For crypto enthusiasts, there was the “gm” app, a self-described “meme app” which only allowed users to greet each other with “gm,” or “good morning,” a common acronym thrown around on Crypto Twitter and Discord. But the gm app was shut down back in September after a hacker reportedly gained access to user data. Unlimited number of subscribers per channel Members can post their voice notes of themselves screaming. Interestingly, the group doesn’t allow to post anything else which might lead to an instant ban. As of now, there are more than 330 members in the group. Polls SUCK Channel Telegram
from us


Telegram C# Heppard
FROM American