Mex_Kozo4ki 138 Опубликовано 3 августа, 2021 Поделиться Опубликовано 3 августа, 2021 Достаточно много видел сообщений по поводу оптимизации различных формул, различных расчётов и стратегий. Но мало кто решался подробно изучить основной элемент таблиц, без которого они не смогли бы полноценно работать. В качестве примера была взята таблица InfinityBook, которая находится здесь: https://brcbet.com/files/file/37-rabochaya-infinitybook-12v1/ Код был оптимизирован, в процессе работы использовалась информация с этих сайтов: https://docs.microsoft.com/ru-ru/office/vba/excel/concepts/excel-performance/excel-tips-for-optimizing-performance-obstructions https://vremya-ne-zhdet.ru/vba-excel/vremya-raboty-makrosa/ Дополнительно был создан "частично-оптимизированный" файл загрузчика. В нём было всего два изменения относительно исходного файла: отключенный пересчёт (Application.Calculation = xlCalculationManual) и изменён тип файла на бинарный .xlsb Получается что сравнивались три таблицы - исходная, частично-оптимизированная и полностью оптимизированная - "быстрая". Все они находятся в архивах внизу сообщения. Затем провёл измерения - по 5 штук. При нахождении среднего не учитывал лучшее и худшее среди этих пяти значений. При этом использовал встроенную функцию Timer. Сначала измерялось время загрузки списка матчей ( лист "Список") в обычном режиме. Затем загружались те же данные, но с использование одного ядра процессора. (настраивал через Файл->Параметры->Дополнительно->Формулы) Далее загружался матч: с макросом "refreshAll", и без него. Результаты выложил в файле "Сравнение версий". Поскольку в данном парсере практически отсутствуют тяжёлые формулы, то данные с "частично-оптимизированной" таблицей и данные с одноядерного теста не являются корректными. Данные будут корректными если загрузчик будет использовать больше сложных формул/расчётов. В ходе эксперимента удалось ускорить загрузчик примерно на 15% по сравнению с исходным вариантом. Вот окончательный вариант:Быстрая IB.7z Как вы считаете, возможно ли ещё сильнее ускорить подобный загручик? И вообще - целесообразно ли оптимизировать таблицы? Исходная IB.7z Оптимизированная IB.7z Сравнение версий.xlsx 5 Цитата Ссылка на комментарий https://brcbet.com/topic/63030-optimizatsiya-zagruzchika/ Поделиться на другие сайты Поделиться
Постоянный GeeGs 595 Опубликовано 3 августа, 2021 Постоянный Поделиться Опубликовано 3 августа, 2021 3 часа назад, Mex_Kozo4ki сказал: Достаточно много видел сообщений по поводу оптимизации различных формул, различных расчётов и стратегий. Но мало кто решался подробно изучить основной элемент таблиц, без которого они не смогли бы полноценно работать. В качестве примера была взята таблица InfinityBook, которая находится здесь: https://brcbet.com/files/file/37-rabochaya-infinitybook-12v1/ Код был оптимизирован, в процессе работы использовалась информация с этих сайтов: https://docs.microsoft.com/ru-ru/office/vba/excel/concepts/excel-performance/excel-tips-for-optimizing-performance-obstructions https://vremya-ne-zhdet.ru/vba-excel/vremya-raboty-makrosa/ Дополнительно был создан "частично-оптимизированный" файл загрузчика. В нём было всего два изменения относительно исходного файла: отключенный пересчёт (Application.Calculation = xlCalculationManual) и изменён тип файла на бинарный .xlsb Получается что сравнивались три таблицы - исходная, частично-оптимизированная и полностью оптимизированная - "быстрая". Все они находятся в архивах внизу сообщения. Затем провёл измерения - по 5 штук. При нахождении среднего не учитывал лучшее и худшее среди этих пяти значений. При этом использовал встроенную функцию Timer. Сначала измерялось время загрузки списка матчей ( лист "Список") в обычном режиме. Затем загружались те же данные, но с использование одного ядра процессора. (настраивал через Файл->Параметры->Дополнительно->Формулы) Далее загружался матч: с макросом "refreshAll", и без него. Результаты выложил в файле "Сравнение версий". Поскольку в данном парсере практически отсутствуют тяжёлые формулы, то данные с "частично-оптимизированной" таблицей и данные с одноядерного теста не являются корректными. Данные будут корректными если загрузчик будет использовать больше сложных формул/расчётов. В ходе эксперимента удалось ускорить загрузчик примерно на 15% по сравнению с исходным вариантом. Вот окончательный вариант:Быстрая IB.7z Как вы считаете, возможно ли ещё сильнее ускорить подобный загручик? И вообще - целесообразно ли оптимизировать таблицы? Исходная IB.7z 2 \u041c\u0411 · 0 загрузок Оптимизированная IB.7z 2 \u041c\u0411 · 0 загрузок Сравнение версий.xlsx 11 \u043a\u0411 · 0 загрузок Оптимизировать таблицы считаю целесообразным, но нужно лишь сдвинуть приоритеты и оптимизировать не код, а сами формулы алгоритмов. Подождать лишние 15-20-25% времени обработки - это не та проблема, над которой действительно следует трудиться. Было бы ради чего...имхо.. 2 Цитата Ссылка на комментарий https://brcbet.com/topic/63030-optimizatsiya-zagruzchika/#findComment-78761 Поделиться на другие сайты Поделиться
zxxxa 72 Опубликовано 3 августа, 2021 Поделиться Опубликовано 3 августа, 2021 Хорошая тема. Но я в этом точно не бум бум. А есть такая таблица Auto_Totalbomb-L10_FX2021.xlsm. Программа хорошая но грузит очень долго. Даже на неделе когда матчей мало грузит не меньше часа. Про выходные я вообще молчу. Не выставляет дату. Можно её оптимизировать? Auto_Totalbomb-L10_FX2021.xlsm Цитата Ссылка на комментарий https://brcbet.com/topic/63030-optimizatsiya-zagruzchika/#findComment-78765 Поделиться на другие сайты Поделиться
Adok 69 Опубликовано 3 августа, 2021 Поделиться Опубликовано 3 августа, 2021 50 минут назад, zxxxa сказал: Хорошая тема. Но я в этом точно не бум бум. А есть такая таблица Auto_Totalbomb-L10_FX2021.xlsm. Программа хорошая но грузит очень долго. Даже на неделе когда матчей мало грузит не меньше часа. Про выходные я вообще молчу. Не выставляет дату. Можно её оптимизировать? Auto_Totalbomb-L10_FX2021.xlsm 390 \u043a\u0411 · 2 загрузки дата же можно выбрать чего не хватает это архив и результаты и насчет что долго думает согласен Цитата Ссылка на комментарий https://brcbet.com/topic/63030-optimizatsiya-zagruzchika/#findComment-78773 Поделиться на другие сайты Поделиться
zxxxa 72 Опубликовано 3 августа, 2021 Поделиться Опубликовано 3 августа, 2021 15 минут назад, Adok сказал: дата же можно выбрать чего не хватает это архив и результаты и насчет что долго думает согласен Про дату это так. Самое главное это скорость загрузки Цитата Ссылка на комментарий https://brcbet.com/topic/63030-optimizatsiya-zagruzchika/#findComment-78777 Поделиться на другие сайты Поделиться
zxxxa 72 Опубликовано 4 августа, 2021 Поделиться Опубликовано 4 августа, 2021 Просил оптимизировать. Теперь приходится просить ещё и отремонтировать. Перестала загружать. Цитата Ссылка на комментарий https://brcbet.com/topic/63030-optimizatsiya-zagruzchika/#findComment-79221 Поделиться на другие сайты Поделиться
Александр Царегородцев 10 Опубликовано 5 августа, 2021 Поделиться Опубликовано 5 августа, 2021 В 04.08.2021 в 01:39, zxxxa сказал: Про дату это так. Самое главное это скорость загрузки Грузи без кэфов, 5 минут и готово Цитата Ссылка на комментарий https://brcbet.com/topic/63030-optimizatsiya-zagruzchika/#findComment-79389 Поделиться на другие сайты Поделиться
zxxxa 72 Опубликовано 5 августа, 2021 Поделиться Опубликовано 5 августа, 2021 6 часов назад, Александр Царегородцев сказал: Грузи без кэфов, 5 минут и готово Она теперь вообще не грузит Цитата Ссылка на комментарий https://brcbet.com/topic/63030-optimizatsiya-zagruzchika/#findComment-79498 Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.