В 1 поток за 6 минут, в 5 потоков почему-то 15-20 минут. Без браузера, только работа со списками.

stmult

Client
Регистрация
19.11.2013
Сообщения
96
Благодарностей
37
Баллы
18
Суть проблемы: Шаблон выполняется в 5 потоков намного медленнее, чем в 1 поток. В 1 поток задание выполняется примерно 6 минут. А вот в 5 потоков примерно 15-17 минут. В 1 поток процессор загружен на 20 процентов и используется около 1 гб оперативной памяти. В 5 потоков нагрузка на процессор около 60-70 процентов, оперативной памяти задействовано 4-6 гигабайт из 8 гб.

Шаблон очень простой - получает слово и проверяет, есть ли это слово в списке с фразами. Если есть, тогда получает фразу с этим словом из списка, отделяет вторую половину фразы и кладет в другую переменную. И так по кругу, пока не закончатся все слова. Поиск и взятие фраз идет через C#.

Шаблон не использует get-запросы, браузер отключен, вся работа идет исключительно со списками и .txt-файлами

Что пробовал делать: Проводил тесты много раз, всегда пропорции по времени одинаковые. Пробовал работать со списком фраз, который привязывал к отдельному файлу. Также пробовал для каждого потока делать свой список с фразами, чтобы никак не пересекались. Также пробовал список с фразами вообще не привязывать к реальному файлу, а просто добавлять фразы из переменной в оперативный список.

Ни один из вариантов не помог сократить время выполнения шаблона. Максимальная нагрузка на оперативную память и процессор не больше 50-70%.

Хочу уменьшить время при работе в 5 потоков до тех же 6 минут, ресурсы позволяют, максимальная нагрузка не достигается, потоки между собой не пересекаются. Как это сделать, какие настройки нужно поменять. Посоветуйте, какие варианты протестировать еще.

Приложения:
1-настройки.jpg - показаны все настройки, которые устанавливал (может быть что-то поменять?)
1-настройки.jpg


3-выполнение в 1 поток.jpg - время, за которое выполнился 1 поток (6 минут)
3-выполнение в 1 поток.jpg

4-нагрузка в 5 потоков.jpg - нагрузка при запуске в 5 потоков
4-нагрузка в 5 потоков.jpg

5-выполнение в 5 потоков.jpg - время за которое выполнены 5 потоков (примерно 16 минут)
5-выполнение в 5 потоков.jpg
 

Samoylov_83

Client
Регистрация
25.08.2015
Сообщения
228
Благодарностей
70
Баллы
28
рамдиск сделай и работай с файлами в нем. кеш зп тоже туда перенеси, там в настройках зп есть пунктик к временной папке
 

Шива

Client
Регистрация
05.02.2018
Сообщения
1 088
Благодарностей
341
Баллы
83
Раздели файлы. Зенка не может в большие файлы.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 375
Благодарностей
2 040
Баллы
113
шаб приложи со списками, так думаю быстрее ответ получишь
 

stmult

Client
Регистрация
19.11.2013
Сообщения
96
Благодарностей
37
Баллы
18
Раздели файлы. Зенка не может в большие файлы.
Вопрос в том, почему в 1 поток за 6 минут она умеет справляться, а в 5 потоков за те же 6 минут не может. А выполняется в 5 потоков в 3-4 раза дольше, за 15-20 минут. При том, что ресурсы использованы только на 60%. Пробовал на сервере запускать, на 16 гб оперативной памяти в 10 потоков, выполнялось уже около 40 минут. То есть теряется всякий смысл запуска в несколько потоков.
 

Шива

Client
Регистрация
05.02.2018
Сообщения
1 088
Благодарностей
341
Баллы
83
Вопрос в том, почему в 1 поток за 6 минут она умеет справляться, а в 5 потоков за те же 6 минут не может. А выполняется в 5 потоков в 3-4 раза дольше, за 15-20 минут. При том, что ресурсы использованы только на 60%. Пробовал на сервере запускать, на 16 гб оперативной памяти в 10 потоков, выполнялось уже около 40 минут. То есть теряется всякий смысл запуска в несколько потоков.
Скорее всего из за того что зенка плодит списки.
1 поток 1 список
5 потоков 5 списков
 

Шива

Client
Регистрация
05.02.2018
Сообщения
1 088
Благодарностей
341
Баллы
83
Попробуй запустить 50 потоков и память будет в сотку.
 

stmult

Client
Регистрация
19.11.2013
Сообщения
96
Благодарностей
37
Баллы
18
Скорее всего из за того что зенка плодит списки.
1 поток 1 список
5 потоков 5 списков
Это так, но даже в этом случае ресурсов пк предостаточно для нормальной работы. Я понимаю, если бы нагрузка была бы под 100% или если бы срабатывала опция контроля использования ресурсов. Но в данном то случае всё должно работать в штатном режиме.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 375
Благодарностей
2 040
Баллы
113
а что стоит приложить шаб, нравится заниматься мазахизмом ? ))
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 375
Благодарностей
2 040
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 375
Благодарностей
2 040
Баллы
113
Попробуй запустить 50 потоков и память будет в сотку.
я запущу в +100500 и память не будет в сотку ))
у меня файлы под милион
работает 500 потоков
и сервак дохлый
8 проц
6 гб памяти
и всё ок отрабатывает
примерно 30% хавает
 

Шива

Client
Регистрация
05.02.2018
Сообщения
1 088
Благодарностей
341
Баллы
83
я запущу в +100500 и память не будет в сотку ))
у меня файлы под милион
работает 500 потоков
и сервак дохлый
8 проц
6 гб памяти
и всё ок отрабатывает
примерно 30% хавает
Если делать на стандартных экшенах то все будет в сотку.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 375
Благодарностей
2 040
Баллы
113
Если делать на стандартных экшенах то все будет в сотку.
ну на стандартных не проверял
хотя есть тоже тут мой пост тест, что кубики отрабатывают по другому чем C# код

P.S. поэтому и говорю. шаб в студию, мы его доработаем, но чувак чего то скрывает. но ему надо решить проблему с завязанными глазами, я не экстраненс ))
 

Geograph

Client
Регистрация
16.02.2014
Сообщения
207
Благодарностей
114
Баллы
43
Если списки привязаны к файлам, то всё упирается в скорость диска, многопоток для работы с файлами не применяют.
 

stmult

Client
Регистрация
19.11.2013
Сообщения
96
Благодарностей
37
Баллы
18
ну на стандартных не проверял
хотя есть тоже тут мой пост тест, что кубики отрабатывают по другому чем C# код

P.S. поэтому и говорю. шаб в студию, мы его доработаем, но чувак чего то скрывает. но ему надо решить проблему с завязанными глазами, я не экстраненс ))
После того как написал вопрос, через 2 минуты пришло в голову совершенно другое решение, с помощью C#. Решил удалять из списка 1 слова, которые есть в списке 2 (в первом списке около 10-20 тысяч слов, во втором около 4 миллионов). В итоге шаблон стал выполняться за 2-5 секунд. И вместо того чтобы потратить около 2 месяцев на фильтрацию всех данных, ушло около 1 часа. Поэтому и не стал уже никого здесь напрягать лишний раз, но спасибо всем, кто готов был поучаствовать в решении проблемы.

Пусть разработчики думают, в чем может быть проблема по самому вопросу, я им описал все условия в службу поддержки.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)