- Remove From My Forums
-
Вопрос
-
Всем здравствуйте. Производим расчеты в Microsoft Excel 2010 (не обсуждаем почему, так удобней). Поиск решения занимает значительное время (более часа). Встал вопрос как ускорить этот процесс. Первоначально задача выполнялась
на машине послабее (core i5-4690, DDR3 8Гб, система и офис установлены на SSD. Windows 10 x64, Office 2010). Попробовали на машине посильней (core i7-7700, DDR4 16Гб, система и офис на SSD. Windows 10 x64, Office 2016). К удивлению,
прироста производительности при решении практически не оказалось (даже показалось что на более слабой машине быстрее работает). Отсюда вопрос: Какие ресурсы важны для Excel? На какой машине он будет работать быстрее? Желательно не предлагать переход
на Linux и использование Matlab и т.п.
DivineSoul Пользователь Сообщений: 35 |
Добрый день! Суть проблемы — есть екселевский файл весом 60-70мб (в зависимости от заполненных данных). В нём находиться огромнейшее кол-во сложнейших вычислений. Я пришёл к выводу, что скорее всего у меня проблемы с производительностью ПК. Моё железо сейчас: P.s. файл трогать нельзя! Он полностью рабочий (в нём никаких условных форматирований — только формулы) — нужно изменить только скорость обработки данных. Изменено: DivineSoul — 12.05.2016 12:26:52 |
Ivan.kh Пользователь Сообщений: 2024 |
|
DivineSoul, поможет только отключение автоматического пересчета формул. В остальном надо менять подход к тому, для чего используется данный файл. |
|
DivineSoul Пользователь Сообщений: 35 |
Я не верю, что производительность железа никак не влияет на скорость работы программы… Я почитал описание программы Excel на офф сайте, и поразился тому, какой объём данных она может обрабатывать (моя таблица и на 2% не соответствует тому, что заявлено в мануале производительности программы), а по факту тормозит так, как будто забита формулами до предельных возможностей программы). |
DivineSoul Пользователь Сообщений: 35 |
Поясню подробнее — мой файлик является своеобразным аналогом 1С-ки — т.е. при помощи формул воссоздан почти весь функционал программы 1С для конкретных задач. Вопрос стоит только в том, как ускорить обработку вводимых данных, чтобы не ждать по 5-7 секунд после каждого введённого значения!? |
Есть понятие производительность ПК, а есть производительность самих исполняемых приложений. Есть еще последовательность вычислений — ПК будет обрабатывать данные в файле ровно так как Вы напишите формулы. Если в файле эксель много формул написанных «с запасом» (когда обращение идет не на выделенные диапазоны с данными — а на диапазон столбцов/строк). Вообще для комфортной работы эксель достаточно вот такой конфигурации: Еще следует помнить что эксель не должен использоваться как База Данных для каких-то серьезных проектов. Простые способы ускорить работу эксель: В общем это из того что пришло в голову. Никто не знает столько — сколько не знаю я |
|
китин Пользователь Сообщений: 931 |
#7 12.05.2016 14:27:52
Странно. Я все жизнь считал , что десяток простых и быстрых формул будут работать быстрее, чем одна МЕГАформула. Неужели я ошибался? Вполне такой нормальный кинжальчик. Процентов на 100 |
||
китин, получается, да. несмогу подобрать исключения — но возможно они есть, но в общем суть вот в чем: условно говоря так: п.с.: зависимость, конечно, не линейная — но она присутствует. Изменено: fakenomore17 — 14.05.2016 23:17:19 Никто не знает столько — сколько не знаю я |
|
китин Пользователь Сообщений: 931 |
#9 12.05.2016 14:35:25
Изменено: китин — 13.05.2016 11:53:31 Вполне такой нормальный кинжальчик. Процентов на 100 |
||
Ivan.kh Пользователь Сообщений: 2024 |
#10 12.05.2016 14:49:04
не спешите стреляться, вопрос по поводу скорости неоднозначен ТЫЦ |
||
Sanja Пользователь Сообщений: 14838 |
#11 12.05.2016 14:51:39 На СУБД переходите. Или хотя-бы на макросы.
? Изменено: Sanja — 12.05.2016 14:56:16 Согласие есть продукт при полном непротивлении сторон. |
||
китин Пользователь Сообщений: 931 |
Ivan.kh,спасибо!!!! поживем еще Ivan.kh ) я тут пару месяцев назад наваял формулу так символов в 300-350 где то за полчаса. Вчера два часа пытался переделать ее под новые реалии.плюнул написал новую.Теперь думаю что будет если босс снова решит условия поменять Изменено: китин — 12.05.2016 15:03:35 Вполне такой нормальный кинжальчик. Процентов на 100 |
Михаил С. Пользователь Сообщений: 10514 |
#13 12.05.2016 15:59:15
Я тоже так считаю. Не вижу случая, когда мега-формула будет работать быстрее нескольких простых формул. Особенно это заметно, если в МЕГА-формуле используются массивы и таких формул много. Или в мега-формуле несколько раз пересчитывается один и тот же фрагмент. По ускорению — если есть возможность по объёму данных — используйте 2003 офис; затем — 2010. 2013 и 2016 заметно медленнее 2010. Во всяком случае на слабом железе. |
||
TheBestOfTheBest Пользователь Сообщений: 2366 Excel 2010 +PLEX +SaveToDB +PowerQuery |
#14 12.05.2016 16:38:36
— для ускорения пересчета — ++ Неизлечимых болезней нет, есть неизлечимые люди. |
||
ArtHome Пользователь Сообщений: 44 |
В экселе на быстродействие влияет тупо частота процессора. Так как он грузит только одно ядро процессора. ЗЫ А памяти у ТС и так уже много. Изменено: ArtHome — 13.05.2016 11:54:31 |
MCH Пользователь Сообщений: 3875 |
Основной прирост скорости дает замена процессора на более быстрый и многоядерный (для пересчета формул в Excel 2007 и выше) Лучше всего заменить формулы на разовые расчеты макросом, SQL запросы либо на сводные таблицы. Например у Вас в файле огромное количество ВПР, которые постоянно пересчитываются. |
Бахтиёр Пользователь Сообщений: 1930 Excel 365 |
#17 12.05.2016 19:01:53
по-моему у ТС как раз этот случай, исходя из:
Изменено: Бахтиёр — 12.05.2016 19:06:04 |
||||
Бахтиёр Пользователь Сообщений: 1930 Excel 365 |
#18 12.05.2016 19:09:41
? Прикрепленные файлы
|
||
JeyCi Пользователь Сообщений: 3357 |
#19 12.05.2016 19:52:48
для случаев, указанных в #13, наверно, всё-таки будут улучшения… мне кажется… по крайней мере, в своё время, чтобы взглянуть на AutoCad (много оперативки заполняет) — мне пришлось увеличивать её, и это помогло… имхо (случаи из #13 тоже, видимо, много озу могут занять) Изменено: JeyCi — 12.05.2016 19:54:50 чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах) |
||
Фродо Пользователь Сообщений: 348 |
не хватило сил прочесть все посты суть: изучайте направление Как оптимизировать формулы/макросы для ускорение их работы а то что вы ферари себе купите, она всеравно не поедет быстрей жигулей по грунтовой дороге и прицепленным белазом у меня простая версия Экселя, в ней нет кнопки «Прочитать мысли и сгенерировать файл пример» |
ArtHome Пользователь Сообщений: 44 |
#21 13.05.2016 03:54:46 Бахтиёр, это для успокоения пользователей. Видимо в определённых ситуациях даёт прирост производительности, когда есть несвязанные блоки вычислений. Но в узких местах может быть только один процесс. Пример — выполняем бесконечный цикл
При этом видим, что у четырёхядерного процессора загрузка всего 25%. Операционная система бросает эксель с одного ядра на другое, но общая загрузка процессора — 25%, увы. Прикрепленные файлы
|
||
ArtHome Пользователь Сообщений: 44 |
#22 13.05.2016 03:58:56
Как в анекдоте — чукча не читатель, чукча писатель, однако! |
||
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
#23 13.05.2016 04:08:59 Доброе времени суток
ArtHome, как бы Бахтиёр показывал настройку числа используемых процессоров в рамках темы. Excel использует многопоточные вычисления для расчётов формул. VBA же как был однопоточным, так и остался. Так что ваше замечание, в рамках темы не совсем корректно. |
||
ArtHome Пользователь Сообщений: 44 |
#24 13.05.2016 04:51:21
Два разных несвязанных документа — без проблем, будут исполнятся в разных потоках. Но речь идёт у ТС про один проект, в котором изменение одной ячейки приводит к перерасчётам продолжительностью в несколько секунд. Эксель банально пересчитывает таблицы данных одну за другой, хотя там-то уж можно было бы распараллелить работу, однако не получилось. Потоки ещё могут использоваться при построении деревьев вычислений. Но для случая ТС уже вся эта работа выполнена, проект в активном актуальном состоянии. И после внесения изменений пользователем тупо начинается пересчёт всей цепочки. Возможно у ТС всё усугубляется неверной работой макросов — например запрещать и разрешать события надо всего один раз, избегая вложенностей. Но на своих проектах, в оптимальности которых я уверен, я неоднократно видел, что когда эксель выполняет перерасчёты, грузится только одно ядро. Более того, программируя на более других языках многопоточные приложения под Windows, я понимаю, почему это происходит именно так — трудно начать расчёт в параллельном потоке с середины вычислений не имея результата предыдущей части. Можно только что-то оптимизировать и подготовиться, но эта оптимизация выполняется в самом начале, и на десятый раз уже давно всё выоптимизировано…) |
||
ZVI Пользователь Сообщений: 4328 |
Excel отключает многопоточные вычисления, если в формулах используются такие функции: Для больших книг с множеством формул бывает полезно нажать Alt-F11, затем CTRL-G, ввести ActiveWorkbook.ForceFullCalculation=True и нажать Enter. |
Бахтиёр Пользователь Сообщений: 1930 Excel 365 |
#26 13.05.2016 07:24:22 Владимир, если я правильно Вас понял, стоит ли на большие книги с множеством формул:
? Или же нужно выполнить это действие для книги один раз и забыть об этом? Изменено: Бахтиёр — 13.05.2016 07:27:56 |
||
ZVI Пользователь Сообщений: 4328 |
#27 13.05.2016 08:12:50
Да, но уточню, что данный метод дает эффект если на листе используется множество многоуровневых ссылок: ячейка ссылается на другую, та на третью. и так много раз. Для таких формул для каждого листа Excel создает своё дерево зависимостей. При изменении значения ячейки она сначала помечается как Dirty — отметка о необходимости пересчета зависимостей формул от этой ячейки. Затем для каждой такой помеченной ячейки сверху-вниз и слева-направо сканируются остальные ячейки, которые ссылаются на неё и найденные зависимые ячеки тоже помечаются как Dirty. Чем больше уровней вложения зависимостей, тем дольше такой процесс длится. После этого запускается пересчет формул всех найденных таким образом ячеек. А ForceFullCalculation=True исключает процесс сканирования и просто запускается процесс пересчета всех формул листа, что может быть быстрее (зависит от глубины зависимостей формул) . Замедление пересчета может быть связано и с тем, что книга редактировалась в другой версии Excel или с другим количеством ядер процессора.
Изменено: ZVI — 13.05.2016 08:25:20 |
||||
ZVI Пользователь Сообщений: 4328 |
ForceFullCalculation=True имеет смысл пробоватьа в тех случаях, когда книга открывается долго или когда редактирование/удаление ячеек производится медленно. |
Бахтиёр Пользователь Сообщений: 1930 Excel 365 |
#29 13.05.2016 09:05:33 Владимир, спасибо большое за подробный (как всегда) ответ.
Как раз часто сталкиваюсь с такими случаями |
||
JeyCi Пользователь Сообщений: 3357 |
#30 13.05.2016 09:10:42
честно говоря, только что применила (на всякий случай на открытие) 2 раза проверила — с последующим открытием с этими строками и без — и как-то ~ на 20сек. увеличилось время открытия (но уже, как вернуть, не знаю)
(-случай примерно такой — переустанавливала windows и xl — немного др версии с xl2010 на xl2010sp1) Изменено: JeyCi — 13.05.2016 18:01:55 чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах) |
||||
Сборка компьютера для больших вычислений
Всем привет.
Столкнулся с проблемой очень долгих вычислений в excel.
Формула массива данных обрабатывает запрос очень долго.
Моя таблица это 3 042 240 ячеек. Таких листов у меня 6.
Текущая комплектация, это ноутбук:
Ноутбук HP ProBook 455 G7, 15.6″, AMD Ryzen 5 4500U 2.3ГГц, 8ГБ, 256ГБ SSD, AMD Radeon , Free DOS, 1F3M6EA, серебристый
Но я хочу собрать именно ПК. Бюджет 80 000 руб. Не ноутбук. Не игровой.
Нужна большая вычислительная мощность
Если вы не понимаете зачем нужен производительный ПК для расчёта больших данных, пропустите эту тему мимо. Не флудите в комментариях, пожалуйста.
Идеи типа отключить автообновление ячеек тоже не предлагать плиз, уже устал слушать)
Буду рад вашим комментариям, но строго по теме.
2 чел.
ПК за 200к. Сборка на RYZEN 9 3950X проверена на совместимость. Все компоненты компьютера совместимы, если не указано обратное. Потребляемая мощность компьютера 536 Ватт рассчитана с запасом 25%.
Конфигурация компьютера RYZEN 9 3950X + RTX 2080 Ti за 200000 рублей февраль 2020 год Сборка ПК для эксель за 211 000 p.
Где купить компьютер и подобрать комплектующие для сборки ПК по низким ценам? В Hardprice! Сравнить цены на компьютерные комплектующие для сборки компьютера.
Мониторинг, история и динамика цен на компьютеры.
Информация, указанная на сайте, не является публичной офертой. Цены действительны для Москвы и Московской области.
Регион Москва.
Все цены представлены без учета скидок для постоянных клиентов и без учета стоимости доставки.
Сравнить
цены на компьютеры,
помощь в подборе комплектующих для ПК. Хард Прайс.
16.04.2023 Курс валют
USD
81.5
EUR
90.16
UAH
2.21
Совет: чтобы скопировать только артикулы товаров из сборки для возможности заказать компьютер в нужном интернет-магазине, нажмите
экспорт товаров
и затем укажите вариант форматирования «только артикулы» и выберите нужный магазин.
Также вы можете экспортировать список товаров с ценами для вставки на сайт, блог или форум.
Стоит задача собрать комп для математических расчетов.
Многопоточное приложение для мат расчетов. Каждый поток обрабатывает не какой то клочек кода, а весь массивный код. В данный момент у меня i7-2600 4-ядерный 3400 МГц, загрузка процессора идет 99%.
Вопрос следующий:
1. Выбор архитектуры проца Kaby Lake, Skylake, Broadwell. Стоит ли гнаться за новым и переплачивать?
2. Частота или все же ядра.
Обычный проц еще плюс ко всему можно разогнать, а серверный мне сказали не пойдет для разгона.
Допустим
Intel Core i7 — 7740X (Socket 2066, 4-ядерный, 4300 МГц, Turbo: 4500 МГц, Kaby Lake-X, Кэш L2 — 1 Мб, Кэш L3 — 8 Мб, 14 нм)
или
Intel Core i9 — 7920X (Socket 2066, 12-ядерный, 2900 МГц, Turbo: 4400 МГц, Skylake-X, Кэш L2 — 12 Мб, Кэш L3 — 16.5 Мб, 14 нм)
или 2 проца (24 ядра)
Intel Xeon Silver 4116 (Socket 3647, 12-ядерный, 2100 МГц, Skylake-SP, Кэш L2 — 12 Мб, Кэш L3 — 16.5 Мб, 14 нм).
Стоимость сборки с этими процами будет конечно сильно разниться.
Примерная стоимость процессоров:
Core i7 — 7740X — 20 тыс.
Core i9 — 7920X — 80 тыс.
Xeon Silver 4116 2 шт — 140 тыс.
Но допустим 1 комп с двуми процами xeon будет стоит дешевле чем 2 компа с i9 — 7920X.
И наверно столь ко же сколько 3 компа с i7 — 7740X.
***
Добавлено
Сообщение от dimank666