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

  • Автор темы Автор темы stmult
  • Дата начала Дата начала

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
 
рамдиск сделай и работай с файлами в нем. кеш зп тоже туда перенеси, там в настройках зп есть пунктик к временной папке
 
Раздели файлы. Зенка не может в большие файлы.
 
шаб приложи со списками, так думаю быстрее ответ получишь
 
Раздели файлы. Зенка не может в большие файлы.
Вопрос в том, почему в 1 поток за 6 минут она умеет справляться, а в 5 потоков за те же 6 минут не может. А выполняется в 5 потоков в 3-4 раза дольше, за 15-20 минут. При том, что ресурсы использованы только на 60%. Пробовал на сервере запускать, на 16 гб оперативной памяти в 10 потоков, выполнялось уже около 40 минут. То есть теряется всякий смысл запуска в несколько потоков.
 
Вопрос в том, почему в 1 поток за 6 минут она умеет справляться, а в 5 потоков за те же 6 минут не может. А выполняется в 5 потоков в 3-4 раза дольше, за 15-20 минут. При том, что ресурсы использованы только на 60%. Пробовал на сервере запускать, на 16 гб оперативной памяти в 10 потоков, выполнялось уже около 40 минут. То есть теряется всякий смысл запуска в несколько потоков.
Скорее всего из за того что зенка плодит списки.
1 поток 1 список
5 потоков 5 списков
 
Попробуй запустить 50 потоков и память будет в сотку.
 
Скорее всего из за того что зенка плодит списки.
1 поток 1 список
5 потоков 5 списков
Это так, но даже в этом случае ресурсов пк предостаточно для нормальной работы. Я понимаю, если бы нагрузка была бы под 100% или если бы срабатывала опция контроля использования ресурсов. Но в данном то случае всё должно работать в штатном режиме.
 
а что стоит приложить шаб, нравится заниматься мазахизмом ? ))
 
Попробуй запустить 50 потоков и память будет в сотку.
я запущу в +100500 и память не будет в сотку ))
у меня файлы под милион
работает 500 потоков
и сервак дохлый
8 проц
6 гб памяти
и всё ок отрабатывает
примерно 30% хавает
 
я запущу в +100500 и память не будет в сотку ))
у меня файлы под милион
работает 500 потоков
и сервак дохлый
8 проц
6 гб памяти
и всё ок отрабатывает
примерно 30% хавает
Если делать на стандартных экшенах то все будет в сотку.
 
Если делать на стандартных экшенах то все будет в сотку.
ну на стандартных не проверял
хотя есть тоже тут мой пост тест, что кубики отрабатывают по другому чем C# код

P.S. поэтому и говорю. шаб в студию, мы его доработаем, но чувак чего то скрывает. но ему надо решить проблему с завязанными глазами, я не экстраненс ))
 
Если списки привязаны к файлам, то всё упирается в скорость диска, многопоток для работы с файлами не применяют.
 
ну на стандартных не проверял
хотя есть тоже тут мой пост тест, что кубики отрабатывают по другому чем C# код

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

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

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