Re: [pgAdmin][RM4701] Webpack optimization

From: Aditya Toshniwal <aditya(dot)toshniwal(at)enterprisedb(dot)com>
To: Ashesh Vashi <ashesh(dot)vashi(at)enterprisedb(dot)com>
Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: [pgAdmin][RM4701] Webpack optimization
Date: 2019-09-18 11:54:52
Message-ID: CAM9w-_kTK3N7n5buFR-vkrcVFGwZkJxOSoNFGCnKE3k0iHXNmg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Hi Ashesh,

On Wed, Sep 18, 2019 at 5:05 PM Ashesh Vashi <ashesh(dot)vashi(at)enterprisedb(dot)com>
wrote:

> On Wed, Sep 18, 2019 at 2:26 PM Aditya Toshniwal <
> aditya(dot)toshniwal(at)enterprisedb(dot)com> wrote:
>
>> Hi Hackers,
>>
>> Attached is the patch to optimise webpack bundled files for improving
>> performance.
>> @Ashesh Vashi <ashesh(dot)vashi(at)enterprisedb(dot)com> Thank you for your
>> suggestions and inputs.
>>
>> Changes include:
>> 1) Remove underscore-string and sprintf-js packages as we were using only
>> %s. Instead, added a function to do the same. Also changed gettext to
>> behave like sprintf directly.
>> 2) backgrid.sizeable.columns was not used anywhere, removed.
>> @babel/polyfill is deprecated, replaced it with core-js.
>> 3) Moved few css to make sure they get minified and bundled.
>> 4) Added Flask-Compress to send static files as compressed gzip. This
>> will reduce network traffic and improve initial load time for pgAdmin.
>> 5) Split few JS files to make code reusable.
>> 6) Lazy load few modules like leaflet, wkx is required only if geometry
>> viewer is opened. snapsvg loaded only when explain plan is executed. This
>> will improve sqleditor initial opening time.
>>
> Move svgsnap, and its dependencies completely in separate module, and load
> them only when required (lazy loading).
> Similarly - leaflet should be in a separate module, as not many user will
> use the Geometry Viewer.
>
They are lazy loaded in the UI component, but are bundled along with
sqleditor JS. I'll separate them into a different JS file to further
isolate.

>
> -- Thanks, Ashesh
>
>>
>> Below is the size and files difference after and before the changes:
>> [image: Screenshot 2019-09-18 at 14.13.02.png][image: Screenshot
>> 2019-09-18 at 14.04.41.png]
>> Below is the lighthouse (Chrome extension) report after and before the
>> changes:
>> [image: Screenshot 2019-09-18 at 13.53.10.png] [image: Screenshot
>> 2019-09-18 at 14.08.20.png]
>>
>> Do not forget to do a yarn install and a pip install
>> Kindly review.
>>
>> --
>> Thanks and Regards,
>> Aditya Toshniwal
>> Software Engineer | EnterpriseDB India | Pune
>> "Don't Complain about Heat, Plant a TREE"
>>
>

--
Thanks and Regards,
Aditya Toshniwal
Software Engineer | EnterpriseDB India | Pune
"Don't Complain about Heat, Plant a TREE"

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Ashesh Vashi 2019-09-18 11:57:59 Re: [pgAdmin][RM4701] Webpack optimization
Previous Message Aditya Toshniwal 2019-09-18 11:53:13 Re: [pgAdmin][RM4701] Webpack optimization