Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Расчёт данных занимает 5 дней!!! HELP!
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Сразу извинюсь, что мой вопрос возможно не совсем по теме форума, но всё-таки спрошу! Итак, возникла следующая проблемка: Имеется файл EXCEL содержащий гору макросов и обрабатывающий с их помощью огромное кол-во информации! Время на полную обработку порядка 5 дней!!!! (обалдеть просто можно!!!) Характеристики компа: Cel 566, 96 ОЗУ. Компютер находится в сети, к которой подключено ещё порядка 10 компьютеров которые загружены ну максимум на 20-30% (вообщем там работают только с Word-ом)!!! Хотелось бы сделать так, чтобы все эти сетевые копьютеры в своё так сказать свободное время (в оставшиеся 70%) взяли и дружненько помогли первому копьютеру рассчитать все данные! Я так полагаю что в память тех десяти компов надо повесить какую-то прогу,а первый комп так сказать будет просто раздавать по компьютерам задания и собирать результат! (возможно я ошибаюсь) Вопрос: возможно ли это сделать вообще? Если да то как? Может кто-то когда нибудь сталкивался с такой проблемой! Заранее большое спасибо! PS. Я конечно понимаю, что многие просто предложат написать эту прогу на другом языке программирования, а не на VBA или просто предложат оптимизировать существующий код макросов! Но всё-таки не хотелось бы ничего переписывать, а заставить все копьютеры поработать так сказать в "одной упряжке" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 09:46 |
|
||
|
Расчёт данных занимает 5 дней!!! HELP!
|
|||
|---|---|---|---|
|
#18+
распределенные вычисления - это область, на исследования которой сейчас тратится миллиарды долларов. На мой взгляд, самостоятельно сделать что-то подобное просто нереально. Попробуйте разбить задачу на логические обособленные части и вручную запустить их на разных компьютерах. А вообще обработка "огромного кол-ва информации" - это не задача Excel, и "может в консерватории что-то подправить!?" попробуйте выбрать адекватные инструменты для решения Ваших задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 10:41 |
|
||
|
Расчёт данных занимает 5 дней!!! HELP!
|
|||
|---|---|---|---|
|
#18+
Ну для начала надо действительно постараться с оптимизировать код, для этого ничего переписывать не надо, надо только добавить пару строчек, которые помогут Excel'ю сосредоточится над работой а не заниматься ненужными фоновыми вычислениями и обновлением экрана: With Application .ScreenUpdating = False .Calculation = xlManual .CalculateBeforeSave = False .EnableAnimations = False .ErrorCheckingOptions.BackgroundChecking = False End With Если ScreenUpdating сам после работы макроса включится, то забыв после работы макроса поменять .Calculation = xlManual, придется лезть в настройки и выбирать там автомат. (тоже самое с EnableAnimations) По поводу совместной работы вижу токо один выход при заданных начальных условиях: разместить файл в общедоступной папке и написать макрос, коорый будет лезть к этому файлу по сети, брать свой кусок данных, выполнять его и писать в ответ обратно в файл (Excel позволяет совместно работать с фйалом). Т.е. главная задача разобрать свои данные так, чтобы макроса могли независимо брать/обрабатывать разные куски данных....как это сделать...не видя твоих данных и макросов ничего посоветовать тебе невозможно, токо идея P.S. а вообще все-таки стоит рассмотреть идею по переводу всех этих вычислений на другие программные рельсы. Я сам как-то с таким столкнулся, когда небольшая таблица в Excel'е выросла до 30 000 строк, лопатить которые Excel уже сильно напрягало. Просто если используется Excel, значит идет работа с таблицами, а это прерогатива Баз данных. Я уверен на все 100 процентов, что все твои вычисления можно спокойно перенести в Access, который справится с твоим объемом шутя - у него работа такая :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 12:04 |
|
||
|
Расчёт данных занимает 5 дней!!! HELP!
|
|||
|---|---|---|---|
|
#18+
Прежде чем писать новую программу с распределенными вычислениями, стоит подумать, нельзя ли оптимизировать код, переписав какие-то особо долгие процедуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2004, 23:19 |
|
||
|
Расчёт данных занимает 5 дней!!! HELP!
|
|||
|---|---|---|---|
|
#18+
Причина подобных тормозов не в VBA, а в скорости доступа к данным самого Excel. Т.е. для того получить в Excel значение из определённой строчки и ячейки - требуется очень много времени. При больших объёмах вычислений это время складывается в часы. Единственный выход - импорт обрабатываемых данных в Access или другую БД. После чего переделать макросы, организовав доступ к данным через ADO. А если хочется ещё быстрее, то формировать массив и выгружать в него содержимое ячеек. Это проще, чем гнуть пальцы и устраивать распределённые вычисления с Excel. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2004, 10:14 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32423459&tid=2170012]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 364ms |

| 0 / 0 |
