Страницы: 1 2 След.
RSS
Есть ли смысл увеличения памяти с 8гб на 16 для увеличения скорости обработки больших файлов, Файлы до 1 млн строк, с фильтрами, формулами
 
Параметры системы:
Excel 2016
Intel 2.7Ghz
8 гб (доступно 7,89)
Win 7 64 разрядн

интересует увеличение скорости:
а) работы фильтра на большом файле с формулами (про отключение вычислений и вставки значений в курсе, не всегда это удобно)
б) скорости обработки циклических макросов (как с обработкой данных в ячейках, так и сведенных данных в массивах, экран и вычисления отключать умею)
в) увеличение скорости обработки данных в Olap-кубах

вопрос насколько прирастет скорость при таких задачах.
С уважением,
Сергей
 
с предыдущей темой все нормально?
 
Цитата
copper-top написал:
с предыдущей темой все нормально?
ответил в теме
С уважением,
Сергей
 
С такими объемами есть смысл не память добавлять, а отказаться от использования Экселя.
 
Цитата
Влад написал:
С такими объемами есть смысл не память добавлять, а отказаться от использования Экселя.
увы, пока нужен Эксель для обработки. Так что ищу решение для него
С уважением,
Сергей
 
г) увеличения максимального размера массивов в макросах.
С уважением,
Сергей
 
Добрый день!
По п.б и п.в гораздо больше поможет оптимизация алгоритмов.
Плохой алгоритм сожрёт всю память, сколько бы её ни было.

По п.а может формулы загнать в макросы? Чтобы пересчёт происходил не всегда а по кнопке на листе или при определённом событии.

По п. г вас как ограничивает память? Если у вас миллиарды значений в массивах - точно нужно уходить из Excel'я. Либо опять же оптимизировать алгоритмы, чтобы такие массивы создавались и хранились в памяти только в момент появления потребности в них.
Изменено: Vetermsk - 03.08.2017 09:23:53
 
Цитата
Vetermsk написал:
По п.а может формулы загнать в макросы?
Для типовых операций возможно, а часто бывает необходимо разово обрабатывать таблицы 200-800 тыс строк по нетиповым/разовым задачам, написание каждый раз макроса займет существенно больше времени чем использование набора формул, имхо.
С уважением,
Сергей
 
Цитата
Сергей201707 написал:
написание каждый раз макроса
не нужно каждый раз. На все формулы Excel'я существует готовый код.
Каждую формулу реализовать в отдельной процедуре, а при нетиповой задаче просто прописать в управляющей процедуре вызов в нужном порядке.
Займёт немного времени.

А если задача разовая, так может, протянув формулы, заменить их потом на значения?
 
Цитата
Vetermsk написал:
А если задача разовая, так может, протянув формулы, заменить их потом на значения?
не всегда получается сразу написать без ошибок сложную формулу, протянул - посмотрел - исправил формулу - протянул... А если на значения менять то придется ее по новой писать. Можно конечно в 1 строке не копировать на значение но часто бывает нужно разные формулы копировать в отфильтрованные куски таблицы в одном и том же столбце....
С уважением,
Сергей
 
Цитата
Vetermsk написал:
Если у вас миллиарды значений в массивах - точно нужно уходить из Excel'я. Либо опять же оптимизировать алгоритмы, чтобы такие массивы создавались и хранились в памяти только в момент появления потребности в них.
Часть работы в Excel идет в кубах. Там вообще формул нет, но памяти перестает хватать не на миллиардах значений, а тысяч сто строк (уточню когда опять ругнется) на 5-8 столбцов.
С уважением,
Сергей
 
Цитата
Сергей201707 написал:
тысяч сто строк (уточню когда опять ругнется) на 5-8 столбцов.
Вы используете 32бит версию Excel? Если да, то смысла увеличивать объём памяти нет.
 
Цитата
Андрей VG написал:
Вы используете 32бит версию Excel
32 разрядная. а винда 64. А как изменить разрядность Экселя? Переустановить на другую версию?
Изменено: Сергей201707 - 07.08.2017 10:01:07
С уважением,
Сергей
 
Да.
И еще, переходите на обработку больших массивов в PowerQuery и PowerPivot. Лично мне вполне хватает нотбука с i3 и 8Гб оперативки чтобы грызть массивы по 10-20 млн строк. С терпимым временем ожидания.
Заодно забудете про формулы ВПР и ИНДЕКС.
Изменено: PooHkrd - 07.08.2017 10:50:47
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
Да.
Только нужно помнить, что с переходом на 64бит версию отвалится весь код, использующий 32бит компоненты, например, все VB6 библиотеки, как пример, MSCOMCTL.ocx. Соответственно, и сторонние AddIn, использующие 32бит компоненты, плюс, если был код работы с базами, использующий Microsoft.Jet.OLEDB.4.0 подключения, то их нужно будет переводить на Microsoft.ACE.OLEDB.12.0, ну, и если было использование WinAPI, то нужно будет переоформлять вызовы, часть с Long менять LongLong и т. д.
 
Цитата
PooHkrd написал:
PowerQuery и PowerPivot
спасибо, посмотрю. В первую очередь интересует гибкость.
С уважением,
Сергей
 
Цитата
Андрей VG написал:
с переходом на 64бит версию отвалится весь код, использующий 32бит компоненты, например, все VB6 библиотеки, как пример, MSCOMCTL.ocx.
не страшно, особо насколько понимаю это не используем. В первую очередь интересует прирост скорости и размера файлов после перехода на 64 Эксель и 16гб ОЗУ.
Изменено: Сергей201707 - 07.08.2017 11:21:31 (дописал.)
С уважением,
Сергей
 
На серьёзное ускорение рассчитывать не стоит. Если 32бит Excel работал без использования swap memory (можно при выполнении тяжёлых и объёмных вычислительных задач посмотреть состояние использования памяти в мониторе ресурсов), то есть свободная память имеется в наличии, то в лучшем случае процентов на 15 будет быстрее. Хотя, конечно, нужно тестировать, а вдруг мелкомягкие что-то переписали именно под 64бит в плане повышения производительности, для продвижения 64бит приложений ;)
А вот это явление.
Цитата
Сергей201707 написал:
но памяти перестает хватать не на миллиардах значений, а тысяч сто строк (уточню когда опять ругнется) на 5-8 столбцов.
пройдёт. Достаточно будет поставить лишнюю планку памяти, в случае, если Excel будет активно работать со swap, ну, и за счёт избавления от swap получить заметное приращение в скорости.
Изменено: Андрей VG - 07.08.2017 12:27:56
 
Андрей, Владимир (ZVI) в своё время писал, что при работе с БОЛЬШИМИ объёмами данных, 64 версия будет работать ЗАМЕТНО быстрее.
 
Цитата
Юрий М написал:
64 версия будет работать ЗАМЕТНО быстрее.
А лазейку для этого в ответе оставил
Цитата
Андрей VG написал:
что-то переписали именно под 64бит в плане повышения производительности
Цитата
Юрий М написал:
что при работе с БОЛЬШИМИ объёмами данных
Если действительно с БОЛЬШИМИ, то будет
Цитата
Сергей201707 написал:
но памяти перестает хватать не на миллиардах значений, а тысяч сто строк (уточню когда опять ругнется) на 5-8 столбцов.
Следовательно, нет возможности сопоставить производительность 32 и 64 :)
 
Учитывая разносторонность и разнонаправленность задач, которые делаю в Экселе пытаюсь понять насколько будет оправдано для этого поставить 16гб ОЗУ и переустановить Эксель на 64 битную версию.  
С уважением,
Сергей
 
Цитата
Сергей201707 написал:
понять насколько будет оправдано для этого поставить 16гб ОЗУ
Учитывая, что 8Гбайт у вас уже есть, то докупить 8Гбайт DDR4 около 4000 руб, DDR3 около 3000руб, стоит ли вопрос из-за этого поднимать?
Цитата
Сергей201707 написал:
переустановить Эксель на 64 битную версию
Уже писал ответ, пока вразумительных возражений с вашей стороны не последовало, только повторение вопроса темы.
 
Цитата
Андрей VG написал:
Учитывая, что 8Гбайт у вас уже есть, то докупить 8Гбайт DDR4 около 4000 руб, DDR3 около 3000руб,
2 слота занято оба 4+4. На 16 придется покупать или 8+8 или 16. То бишь получается в два раза больше бюджет вышеописанного.
С уважением,
Сергей
 
Цитата
Сергей201707 написал:
2 слота занято оба 4+4
Тогда подойдите к этому вопросу пошагово.
1. Установите Excel 64бит. Убедитесь, что ранее вылетавшие из-за недостатка памяти задачи выполнятся. Плюс, проверьте совместимость по подключениям с внешними источниками данных и сторонними надстройками.
2. При обработке самых больших объёмов данных в мониторе ресурсов проверяете наличие свободной памяти и частоту "ошибок отсутствия страницы в памяти". Если памяти достаточно или вылетов в swap мало, то и память докупать ни к чему. Если же идут частые обращения к swap - много  "ошибок отсутствия страницы в памяти", то, докупать придётся.
 
Может
Цитата
Сергей201707 написал:
Часть работы в Excel идет в кубах.
А кубы откуда берут данные?
 
Цитата
Vetermsk написал:
кубы откуда берут данные
БД SQL  
С уважением,
Сергей
 
Стоит Excel2016х64 и ОЗУ-16ГБ. Работаю с большими объёмами данных (миллионы строк). При работе в Excel при структуре: (Сервера Oracle->sql запрос, Power Pivot, Power Query-сводные таблицы) - хватает в обрез. Я бы еще добавил :)
При нехватке ОЗУ начинает подгружаться файл подкачки, а это тормозит все процессы на порядки (все которые обращаются к памяти, а это почти все программы, окна и т.д.)
Все очень просто - собираете кубы, выполняете запросы и т.д. (т.е. подгружаете в оперативку данные)- открываете монитор ресурсов, смотрите сколько свободной оперативки, как используется файл подкачки.
Место нет или менее 1ГБ именно в физической памяти (без файла подкачки) - однозначно ставить доп. ОЗУ
Для себя давно решил - однозначно Excel...х64.
«Бритва Оккама» или «Принцип Калашникова»?
 
Добавлю: обычно открыто не менее 2-3 сессий Excel для параллельной работы с независимыми друг от друга ресурсами. С соответственным "отжором" :) ОЗУ под каждую сессию.
«Бритва Оккама» или «Принцип Калашникова»?
 
Доброе время суток.
Цитата
bedvit написал:
открываете монитор ресурсов, смотрите сколько свободной оперативки
Дык, уже советовал, коллега, ТС ждёт, видимо, "волшебного" пенделя. Чтобы потом спокойно говорить: мне гуру на форуме сказали ставь или не ставь. Если что не так, они виноваты, я тут не причём. :)
 
Цитата
Андрей VG написал:
ТС ждёт, видимо, "волшебного" пенделя
не ждет ;)

ОЗУ уже заказана техотделу, жду когда купят и поставят, отпишу по результату.
Excel с 32битного переставлен на 64х, с кубами стало заметно легче работать, перестал вылетать там где раньше ругался на нехватку ресурсов.
С уважением,
Сергей
Страницы: 1 2 След.
Читают тему
Наверх