Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Сравнение элементов в циклах с# / 18 сообщений из 18, страница 1 из 1
23.07.2020, 13:18
    #39983068
Кнюпель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение элементов в циклах с#
Есть 2 набора элементов со строками, которые надо сравнить на нечёткое совпадение. Внешний цикл foreach крутится на маленьком наборе (пара сотен элементов) и для каждого из них вызывает внутренний foreach для большего набора (сотня тысяч элементов). Для производительности есть ли разница какой из этих циклов внешний, а какой внутренний? Также интересует можно ли тут использовать параллельную обработку в разных потоках, т.е. запустить во внешнем цикле новый поток на каждый внутренний цикл который перемалывает сотню тысяч элементов, насколько это поможет?
...
Рейтинг: 0 / 0
23.07.2020, 13:33
    #39983087
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение элементов в циклах с#
1) Разницы никакой
2) Можно
...
Рейтинг: 0 / 0
23.07.2020, 13:55
    #39983098
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение элементов в циклах с#
fkthat
1) Разницы никакой

Это зависит от частоты досрочного выхода из внутреннего цикла.
...
Рейтинг: 0 / 0
23.07.2020, 15:18
    #39983154
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение элементов в циклах с#
Dimitry Sibiryakov
Это зависит от частоты досрочного выхода из внутреннего цикла.

Это может зависеть вообще от кучи всего, но я имел в виду самую тупую ситуацию
Код: c#
1.
2.
3.
4.
5.
6.
7.
foreach(var x in xx) 
{
    foreach(var y in yy)
    {
        // делаем что-то и вообще никуда не выходим
    }
}



Модератор: Тема перенесена из форума "Программирование".
...
Рейтинг: 0 / 0
23.07.2020, 16:27
    #39983220
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение элементов в циклах с#
не можно, а нужно. Я не знаю, существуют еще или нет 1 ядерные компы, если только виртуалки, следовательно не использовать все ядра, это бабки на ветер
...
Рейтинг: 0 / 0
23.07.2020, 17:32
    #39983255
love_bach
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение элементов в циклах с#
fkthat
1) Разницы никакой
2) Можно


Разница есть на уровне промаха кэша проца
...
Рейтинг: 0 / 0
23.07.2020, 18:04
    #39983271
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение элементов в циклах с#
love_bach
Разница есть на уровне промаха кэша проца

Ну тут уже вообще особо не проконтролируешь - CLR-ный JIT-компилер может даже просто на двух разных системах с одной платформой сгенерить из IL два разных екзешника.
...
Рейтинг: 0 / 0
24.07.2020, 11:30
    #39983535
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение элементов в циклах с#
fkthat,

только JIT не EXE-шники компилирует, а сразу код выполнения, но суть понятна
...
Рейтинг: 0 / 0
24.07.2020, 20:46
    #39983809
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение элементов в циклах с#
Кнюпель
запустить во внешнем цикле новый поток на каждый внутренний цикл который перемалывает сотню тысяч элементов


https://github.com/dotnet/BenchmarkDotNet


Кнюпель
насколько это поможет?


так вы проверьте :)
...
Рейтинг: 0 / 0
25.07.2020, 00:45
    #39983850
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение элементов в циклах с#
Roman Mejtes
fkthat,

только JIT не EXE-шники компилирует, а сразу код выполнения, но суть понятна

Ну, смотря что считать "EXE-шником". Сборка .NET в IL это тоже, можно сказать, "EXE-шник", потому что имеет PE-формат. В данном случае я имел в виду "исполняемый машинный код". :)
...
Рейтинг: 0 / 0
25.07.2020, 09:57
    #39983879
mikron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение элементов в циклах с#
[quot Кнюпель#22172295]Есть 2 набора элементов со строками, которые надо сравнить на нечёткое совпадение.[ /quot]
А как вы сравнивать собираетесь? От этого многое зависит.
...
Рейтинг: 0 / 0
25.07.2020, 11:39
    #39983887
L.Otujktd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение элементов в циклах с#
Кнюпель,

Насколько нечеткое сравнение? Насколько данные отсортированы?
Требуется получить прирост производительности путём перехода на параллельную обработку?
...
Рейтинг: 0 / 0
27.07.2020, 11:24
    #39984276
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение элементов в циклах с#
fkthat
love_bach
Разница есть на уровне промаха кэша проца

Ну тут уже вообще особо не проконтролируешь - CLR-ный JIT-компилер может даже просто на двух разных системах с одной платформой сгенерить из IL два разных екзешника.

Думаешь он смотрит, если на проце конкретный подходящий набор инструкций и если есть, использует их?
...
Рейтинг: 0 / 0
27.07.2020, 11:34
    #39984281
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение элементов в циклах с#
ЕвгенийВ
Думаешь он смотрит, если на проце конкретный подходящий набор инструкций и если есть, использует их?

Если верить Рихтеру, то да, CLR умеет оптимизировать выполняемый код под хост (CPU и т.п.) в котором он запускается.
...
Рейтинг: 0 / 0
27.07.2020, 11:41
    #39984287
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение элементов в циклах с#
ЕвгенийВ
fkthat
пропущено...

Ну тут уже вообще особо не проконтролируешь - CLR-ный JIT-компилер может даже просто на двух разных системах с одной платформой сгенерить из IL два разных екзешника.

Думаешь он смотрит, если на проце конкретный подходящий набор инструкций и если есть, использует их?
Именно так и работает. Для того и городили все эти CLR и JIT-компиляторы.
...
Рейтинг: 0 / 0
27.07.2020, 12:33
    #39984304
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение элементов в циклах с#
Roman Mejtes, fkthat
А нука напишите мне код на C# что бы в отладчике я мог наблюдать Intel® AVX2 инструкции?
...
Рейтинг: 0 / 0
27.07.2020, 16:35
    #39984404
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение элементов в циклах с#
Чёт, я смотрю, по-бенчить никто не хочет...

ванговать, оно конечно интереснее
...
Рейтинг: 0 / 0
28.07.2020, 10:18
    #39984583
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение элементов в циклах с#
Кнюпель
которые надо сравнить на нечёткое совпадение

Что такое нечёткое совпадение?

Кнюпель
Внешний цикл foreach крутится на маленьком наборе (пара сотен элементов) и для каждого из них вызывает внутренний foreach для большего набора (сотня тысяч элементов).

Самая хреновая реализация, кмк.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Сравнение элементов в циклах с# / 18 сообщений из 18, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]