Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Пареллельная обработка цикла - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Пареллельная обработка цикла
Пареллельная обработка цикла
akobir Дата: Понедельник, 03.12.2018, 07:46 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 196
Репутация: 9 ±
Замечаний: 0% ±

Excel 2010
Всем привет!
У меня имеется массив на 15000 строк, который обрабатывается циклом.
Сам код уже (практически) максимально оптимизировал и дальнейшая оптимизация отожрет больше времени, нежели будет полученный прирост.
На текущий момент код выполняется примерно 4-5 часов, что недопустимо долго. :(
Появилась идея разбить массив на 10 массивов поменьше и запустить одновременную обработку во всех массивах, но как реализовать — не могу додуматься...

Буду признателен!


e-mail: akobir.ismailov@gmail.com
 
Ответить
СообщениеВсем привет!
У меня имеется массив на 15000 строк, который обрабатывается циклом.
Сам код уже (практически) максимально оптимизировал и дальнейшая оптимизация отожрет больше времени, нежели будет полученный прирост.
На текущий момент код выполняется примерно 4-5 часов, что недопустимо долго. :(
Появилась идея разбить массив на 10 массивов поменьше и запустить одновременную обработку во всех массивах, но как реализовать — не могу додуматься...

Буду признателен!

Автор - akobir
Дата добавления - 03.12.2018 в 07:46
Апострофф Дата: Понедельник, 03.12.2018, 08:16 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 177
Репутация: 65 ±
Замечаний: 0% ±

Excel 2003
akobir, давайте для начала код, данные и конечную цель обсудим.


Сообщение отредактировал Апострофф - Понедельник, 03.12.2018, 08:16
 
Ответить
Сообщениеakobir, давайте для начала код, данные и конечную цель обсудим.

Автор - Апострофф
Дата добавления - 03.12.2018 в 08:16
akobir Дата: Понедельник, 03.12.2018, 10:45 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 196
Репутация: 9 ±
Замечаний: 0% ±

Excel 2010
Апострофф, Добрый день!

Текущий код ссылается на огромное количество внутренних ресурсов, соответственно - не сработает.
Накидал примерный тест, что хочется получить в итоге: столкнулся с еще одной проблемой - не передается массив в функцию.Зачеркнуто администрацией

Файл прикладываю.
К сообщению приложен файл: 3817508.xlsm(18.7 Kb)


e-mail: akobir.ismailov@gmail.com

Сообщение отредактировал _Boroda_ - Понедельник, 03.12.2018, 22:08
 
Ответить
СообщениеАпострофф, Добрый день!

Текущий код ссылается на огромное количество внутренних ресурсов, соответственно - не сработает.
Накидал примерный тест, что хочется получить в итоге: столкнулся с еще одной проблемой - не передается массив в функцию.Зачеркнуто администрацией

Файл прикладываю.

Автор - akobir
Дата добавления - 03.12.2018 в 10:45
_Boroda_ Дата: Понедельник, 03.12.2018, 11:04 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13660
Репутация: 5574 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
akobir, определитесь с вопросом. 1 вопрос - 1 тема


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщениеakobir, определитесь с вопросом. 1 вопрос - 1 тема

Автор - _Boroda_
Дата добавления - 03.12.2018 в 11:04
boa Дата: Понедельник, 03.12.2018, 11:05 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 264
Репутация: 55 ±
Замечаний: 0% ±

2013, 365
Скрыто администрацией до определения с вопросом

Удалено администрацией после уточнения ТС




Сообщение отредактировал _Boroda_ - Понедельник, 03.12.2018, 22:08
 
Ответить
СообщениеСкрыто администрацией до определения с вопросом

Удалено администрацией после уточнения ТС

Автор - boa
Дата добавления - 03.12.2018 в 11:05
StoTisteg Дата: Понедельник, 03.12.2018, 11:12 | Сообщение № 6
Группа: Авторы
Ранг: Старожил
Сообщений: 1089
Репутация: 94 ±
Замечаний: 0% ±

Excel 2010
.


Интуитивно понятный код - это когда интуитивно понятно, что это код.

Сообщение отредактировал StoTisteg - Понедельник, 03.12.2018, 11:12
 
Ответить
Сообщение.

Автор - StoTisteg
Дата добавления - 03.12.2018 в 11:12
Апострофф Дата: Понедельник, 03.12.2018, 11:29 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 177
Репутация: 65 ±
Замечаний: 0% ±

Excel 2003
...


Сообщение отредактировал Апострофф - Понедельник, 03.12.2018, 11:30
 
Ответить
Сообщение...

Автор - Апострофф
Дата добавления - 03.12.2018 в 11:29
bmv98rus Дата: Понедельник, 03.12.2018, 20:58 | Сообщение № 8
Группа: Проверенные
Ранг: Старожил
Сообщений: 1417
Репутация: 238 ±
Замечаний: 0% ±

Excel 2013/2016
У меня имеется массив на 15000 строк
+
На текущий момент код выполняется примерно 4-5 часов,

<>
Сам код уже (практически) максимально оптимизировал
 
Ответить
Сообщение
У меня имеется массив на 15000 строк
+
На текущий момент код выполняется примерно 4-5 часов,

<>
Сам код уже (практически) максимально оптимизировал

Автор - bmv98rus
Дата добавления - 03.12.2018 в 20:58
akobir Дата: Понедельник, 03.12.2018, 21:19 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 196
Репутация: 9 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, вопрос в теме.
Все остальное пока не важно. :)


e-mail: akobir.ismailov@gmail.com
 
Ответить
Сообщение_Boroda_, вопрос в теме.
Все остальное пока не важно. :)

Автор - akobir
Дата добавления - 03.12.2018 в 21:19
boa Дата: Понедельник, 03.12.2018, 21:26 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 264
Репутация: 55 ±
Замечаний: 0% ±

2013, 365
akobir,
вы бы все же приложили "оптимизированный" код на суд публики, т.к. то, что в примере даже не понятно что делает...
хотя, в том, что написано, тоже можно оптимизировать :)




Сообщение отредактировал boa - Понедельник, 03.12.2018, 21:34
 
Ответить
Сообщениеakobir,
вы бы все же приложили "оптимизированный" код на суд публики, т.к. то, что в примере даже не понятно что делает...
хотя, в том, что написано, тоже можно оптимизировать :)

Автор - boa
Дата добавления - 03.12.2018 в 21:26
StoTisteg Дата: Понедельник, 03.12.2018, 21:48 | Сообщение № 11
Группа: Авторы
Ранг: Старожил
Сообщений: 1089
Репутация: 94 ±
Замечаний: 0% ±

Excel 2010
boa, слабак :) Я ЭТО до 4 строк (не считая Dim'ов) оптимизировал :p


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщениеboa, слабак :) Я ЭТО до 4 строк (не считая Dim'ов) оптимизировал :p

Автор - StoTisteg
Дата добавления - 03.12.2018 в 21:48
StoTisteg Дата: Понедельник, 03.12.2018, 21:53 | Сообщение № 12
Группа: Авторы
Ранг: Старожил
Сообщений: 1089
Репутация: 94 ±
Замечаний: 0% ±

Excel 2010
Но рекорд ТС пока не побит - даже на Rows.Count отработало за жалкие 10 минут... Не, ну если всё включить и переносить посимвольно, то может и удастся...


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеНо рекорд ТС пока не побит - даже на Rows.Count отработало за жалкие 10 минут... Не, ну если всё включить и переносить посимвольно, то может и удастся...

Автор - StoTisteg
Дата добавления - 03.12.2018 в 21:53
boa Дата: Понедельник, 03.12.2018, 22:03 | Сообщение № 13
Группа: Проверенные
Ранг: Обитатель
Сообщений: 264
Репутация: 55 ±
Замечаний: 0% ±

2013, 365
StoTisteg, respect


 
Ответить
СообщениеStoTisteg, respect

Автор - boa
Дата добавления - 03.12.2018 в 22:03
akobir Дата: Вторник, 04.12.2018, 07:40 | Сообщение № 14
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 196
Репутация: 9 ±
Замечаний: 0% ±

Excel 2010
Всем привет. :)
Пример кода был дан для того, чтобы понять, можно ли все, что в цикле, запускать параллельно, а не последовательно. :)
Сам код на три модуля и тысячу, примерно, строк. Он обращается к блокнотам и ищет в них определенные куски текста.
Не скидывал его изначально — потому что вряд ли у кого-то есть время/желание разбирать тонну чужого кода, как мне казалось. :)


e-mail: akobir.ismailov@gmail.com
 
Ответить
СообщениеВсем привет. :)
Пример кода был дан для того, чтобы понять, можно ли все, что в цикле, запускать параллельно, а не последовательно. :)
Сам код на три модуля и тысячу, примерно, строк. Он обращается к блокнотам и ищет в них определенные куски текста.
Не скидывал его изначально — потому что вряд ли у кого-то есть время/желание разбирать тонну чужого кода, как мне казалось. :)

Автор - akobir
Дата добавления - 04.12.2018 в 07:40
akobir Дата: Вторник, 04.12.2018, 14:43 | Сообщение № 15
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 196
Репутация: 9 ±
Замечаний: 0% ±

Excel 2010
Попробовал впихнуть в немодальные формы - не сработало. :(

Продолжу изыскания.


e-mail: akobir.ismailov@gmail.com
 
Ответить
СообщениеПопробовал впихнуть в немодальные формы - не сработало. :(

Продолжу изыскания.

Автор - akobir
Дата добавления - 04.12.2018 в 14:43
StoTisteg Дата: Вторник, 04.12.2018, 15:13 | Сообщение № 16
Группа: Авторы
Ранг: Старожил
Сообщений: 1089
Репутация: 94 ±
Замечаний: 0% ±

Excel 2010
Он обращается к блокнотам
То есть к текстовым файлам? И много их?


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщение
Он обращается к блокнотам
То есть к текстовым файлам? И много их?

Автор - StoTisteg
Дата добавления - 04.12.2018 в 15:13
akobir Дата: Среда, 05.12.2018, 07:56 | Сообщение № 17
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 196
Репутация: 9 ±
Замечаний: 0% ±

Excel 2010
StoTisteg, все верно.
Столько же, сколько и строк ~15000.
Каждый текстовый файл содержит от 80 до 200 тысяч строк.


e-mail: akobir.ismailov@gmail.com
 
Ответить
СообщениеStoTisteg, все верно.
Столько же, сколько и строк ~15000.
Каждый текстовый файл содержит от 80 до 200 тысяч строк.

Автор - akobir
Дата добавления - 05.12.2018 в 07:56
Roman777 Дата: Среда, 05.12.2018, 09:31 | Сообщение № 18
Группа: Проверенные
Ранг: Ветеран
Сообщений: 911
Репутация: 116 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
akobir, это получается, что все Ваши текстовики могут весить до нескольких сотен гигобайт (в зависимости от используемой кодировки и количества символов в строке). С учётом количества текстовиков, предполагаю, что наиболее выгодным будет переходить на бинарники... Вы не проверяли, мб само обращение в цикле к текстовым файлам создаёт занимает такое большое количество времени? Если нет, можно пробовать оптимизировать сам парсинг...


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Среда, 05.12.2018, 09:32
 
Ответить
Сообщениеakobir, это получается, что все Ваши текстовики могут весить до нескольких сотен гигобайт (в зависимости от используемой кодировки и количества символов в строке). С учётом количества текстовиков, предполагаю, что наиболее выгодным будет переходить на бинарники... Вы не проверяли, мб само обращение в цикле к текстовым файлам создаёт занимает такое большое количество времени? Если нет, можно пробовать оптимизировать сам парсинг...

Автор - Roman777
Дата добавления - 05.12.2018 в 09:31
boa Дата: Среда, 05.12.2018, 09:53 | Сообщение № 19
Группа: Проверенные
Ранг: Обитатель
Сообщений: 264
Репутация: 55 ±
Замечаний: 0% ±

2013, 365
Каждый текстовый файл содержит от 80 до 200 тысяч строк.

уверен, что вы не все строки с него берете, а что-то ищете в нем определенное.
Возможно здесь и будет оптимизация. например через использование языка запросов SQL


 
Ответить
Сообщение
Каждый текстовый файл содержит от 80 до 200 тысяч строк.

уверен, что вы не все строки с него берете, а что-то ищете в нем определенное.
Возможно здесь и будет оптимизация. например через использование языка запросов SQL

Автор - boa
Дата добавления - 05.12.2018 в 09:53
StoTisteg Дата: Среда, 05.12.2018, 11:43 | Сообщение № 20
Группа: Авторы
Ранг: Старожил
Сообщений: 1089
Репутация: 94 ±
Замечаний: 0% ±

Excel 2010
Возможно здесь и будет оптимизация. например через использование языка запросов SQL
Ну или покурить про File System Object, он, кажется, умеет всё, что можно через интерфейс Проводника. В том числе вернуть список файлов, в которых встречается заданная строка.


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщение
Возможно здесь и будет оптимизация. например через использование языка запросов SQL
Ну или покурить про File System Object, он, кажется, умеет всё, что можно через интерфейс Проводника. В том числе вернуть список файлов, в которых встречается заданная строка.

Автор - StoTisteg
Дата добавления - 05.12.2018 в 11:43
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Пареллельная обработка цикла
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2018 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!