SMELUKOV_DEV Telegram 95
На сколько эффективен формат статов вебпака?
Ужасно неэффектифен, потому что данные в статах денормализованы (почти).

Из-за этого, отчет со сравнением и валидацией сборок фиче-ветки и мастер-метки может занимать 4-5 гб (в нашем случае было именно так).
Это делает проблематичным просмотр отчета, потому что HTML очень большой. Супер-классный парсер от Романа Дворнова его спокойно прожует, а вот браузер уже с трудом и в зависимости от ресурсов вашего устройства, вкладка либо будет очень долго открываться, либо будет бесконечно крашиться, ну и места такой отчет на CI займет не мало, на каждый ПР. В результате чего к вам могут прийти ваши DevOps с вопросов вроде "Вы что, используете наш CI как хранилище фильмов? 😑"

Сегодня ночью я решил эту проблему и UI-отчет теперь очень сильно уменьшился в размере.
Например, отчет на 4-5 гб уменьшился до 250мб (в 15 раз!) и открывается за 15 секунд (от момента когда браузер запустился, до момента когда уже можно смотреть отчет).

Это стало возможным благодаря нормализации статов вебпака до того как записать их в отчет.
Грубо говоря, я составил карту всех возможных модулей в статах, вынес их в отдельное служебное поле статов и заменил места их использования порядковыми номерами. В просмотрщике отчетов я сделал обратное преобразование и.... собственно всё 🙂

Кстати, статы вебпака неспроста денормализованы.
Дело в том, что каждый чанк содержит информацию о модулях внутри него и если одни и те же модули используются в разных чанках, то они будут продублированы в статах для каждого чанка, с небольшими отличиями, например, поле chunks в модуле, который находится в чанке foo, будет равно ["foo"]. И так для каждого чанка, внутри которого содежрится этот модуль. А если у вас сотни чанков и тысячи модулей? 😉
В итоге я решил просто помержить содержимое полей chunks от одних и тех же модлей в разных чанках, таким образом получив один модуль, который содержит инфо о чанках, в которых он используется и это ничего не ломает.

ПР можно посмотреть тут, а changelog релиза 5.8.0 здесь



tgoop.com/smelukov_dev/95
Create:
Last Update:

На сколько эффективен формат статов вебпака?
Ужасно неэффектифен, потому что данные в статах денормализованы (почти).

Из-за этого, отчет со сравнением и валидацией сборок фиче-ветки и мастер-метки может занимать 4-5 гб (в нашем случае было именно так).
Это делает проблематичным просмотр отчета, потому что HTML очень большой. Супер-классный парсер от Романа Дворнова его спокойно прожует, а вот браузер уже с трудом и в зависимости от ресурсов вашего устройства, вкладка либо будет очень долго открываться, либо будет бесконечно крашиться, ну и места такой отчет на CI займет не мало, на каждый ПР. В результате чего к вам могут прийти ваши DevOps с вопросов вроде "Вы что, используете наш CI как хранилище фильмов? 😑"

Сегодня ночью я решил эту проблему и UI-отчет теперь очень сильно уменьшился в размере.
Например, отчет на 4-5 гб уменьшился до 250мб (в 15 раз!) и открывается за 15 секунд (от момента когда браузер запустился, до момента когда уже можно смотреть отчет).

Это стало возможным благодаря нормализации статов вебпака до того как записать их в отчет.
Грубо говоря, я составил карту всех возможных модулей в статах, вынес их в отдельное служебное поле статов и заменил места их использования порядковыми номерами. В просмотрщике отчетов я сделал обратное преобразование и.... собственно всё 🙂

Кстати, статы вебпака неспроста денормализованы.
Дело в том, что каждый чанк содержит информацию о модулях внутри него и если одни и те же модули используются в разных чанках, то они будут продублированы в статах для каждого чанка, с небольшими отличиями, например, поле chunks в модуле, который находится в чанке foo, будет равно ["foo"]. И так для каждого чанка, внутри которого содежрится этот модуль. А если у вас сотни чанков и тысячи модулей? 😉
В итоге я решил просто помержить содержимое полей chunks от одних и тех же модлей в разных чанках, таким образом получив один модуль, который содержит инфо о чанках, в которых он используется и это ничего не ломает.

ПР можно посмотреть тут, а changelog релиза 5.8.0 здесь

BY Сергей Мелюков


Share with your friend now:
tgoop.com/smelukov_dev/95

View MORE
Open in Telegram


Telegram News

Date: |

Don’t publish new content at nighttime. Since not all users disable notifications for the night, you risk inadvertently disturbing them. Activate up to 20 bots The optimal dimension of the avatar on Telegram is 512px by 512px, and it’s recommended to use PNG format to deliver an unpixelated avatar. How to create a business channel on Telegram? (Tutorial) A few years ago, you had to use a special bot to run a poll on Telegram. Now you can easily do that yourself in two clicks. Hit the Menu icon and select “Create Poll.” Write your question and add up to 10 options. Running polls is a powerful strategy for getting feedback from your audience. If you’re considering the possibility of modifying your channel in any way, be sure to ask your subscribers’ opinions first.
from us


Telegram Сергей Мелюков
FROM American