Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Externalize next-server from Server Builds #11819

Merged
merged 5 commits into from
Apr 11, 2020

Conversation

Timer
Copy link
Member

@Timer Timer commented Apr 10, 2020

This pull request fixes a few problems causing next-server to be bundled in the server-bundles:

  • Removes including files that match babelIncludeRegexes for the server, as these were already published for Node compatibility.
  • Because next-server imports are now local, the isLocal check short circuited them from being external: we now exclude these from the check.
  • The commonjs external callback now generates an appropriate external import reference for the now-localized files (before, we imported next-server/lib/foo—now, we import ../../next-server/lib/foo).

This pull request re-externalizes the following modules, allowing v8's TurboFan to optimize the code execution paths and share them across pages:

next/dist/next-server/lib/utils.js
next/dist/next-server/lib/head.js
next/dist/next-server/lib/constants.js
next/dist/next-server/lib/document-context.js
next/dist/next-server/lib/utils.js
next/dist/next-server/server/utils.js
next/dist/next-server/lib/utils.js
next/dist/next-server/lib/router/router.js
next/dist/next-server/lib/router-context.js

Closes #11526
Closes #11724
x-ref #8613

@Timer Timer added this to the 9.3.5 milestone Apr 10, 2020
@Timer Timer changed the title Externalize next-server from Builds Externalize next-server from Server Builds Apr 10, 2020
@Timer Timer force-pushed the hotfix/externalize-next-server branch from ca2cf41 to 45c60c0 Compare April 10, 2020 22:52
@ijjk
Copy link
Member

ijjk commented Apr 10, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
buildDuration 10.3s 10.1s -199ms
nodeModulesSize 61 MB 61 MB ⚠️ +2.06 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
main-HASH.js gzip 6.25 kB 6.25 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..e3d8.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.3 kB 56.3 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
main-HASH.module.js gzip 4.78 kB 4.78 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.78 kB 6.78 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.5 kB 51.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
index.html gzip 917 B 917 B
link.html gzip 926 B 926 B
withRouter.html gzip 913 B 913 B
Overall change 2.76 kB 2.76 kB

Serverless Mode (Decrease detected ✓)
General Overall increase ⚠️
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
buildDuration 11s 11s ⚠️ +1ms
nodeModulesSize 61 MB 61 MB ⚠️ +2.06 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
main-HASH.js gzip 6.25 kB 6.25 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..e3d8.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.3 kB 56.3 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
main-HASH.module.js gzip 4.78 kB 4.78 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.78 kB 6.78 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.5 kB 51.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall decrease ✓
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
_error.js gzip 233 kB 233 kB ⚠️ +89 B
404.html gzip 1.32 kB 1.32 kB
hooks.html gzip 956 B 956 B
index.js gzip 233 kB 233 kB -44 B
link.js gzip 243 kB 243 kB ⚠️ +82 B
routerDirect.js gzip 241 kB 241 kB -139 B
withRouter.js gzip 241 kB 241 kB ⚠️ +8 B
Overall change 1.19 MB 1.19 MB -4 B

Copy link
Member

@ijjk ijjk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

As discussed on call this increases requests per seconds dramatically as found from bench marking (see below).

Before this change
~/dev/zeit/next.js(canary) » ab -n 2000 -c 50 http://localhost:3000/error-in-ssr-render                           jj@lime
This is ApacheBench, Version 2.3 <$Revision: 1826891 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 200 requests
Completed 400 requests
Completed 600 requests
Completed 800 requests
Completed 1000 requests
Completed 1200 requests
Completed 1400 requests
Completed 1600 requests
Completed 1800 requests
Completed 2000 requests
Finished 2000 requests


Server Software:        
Server Hostname:        localhost
Server Port:            3000

Document Path:          /error-in-ssr-render
Document Length:        2737 bytes

Concurrency Level:      50
Time taken for tests:   15.493 seconds
Complete requests:      2000
Failed requests:        0
Non-2xx responses:      2000
Total transferred:      5960000 bytes
HTML transferred:       5474000 bytes
Requests per second:    129.09 [#/sec] (mean)
Time per request:       387.317 [ms] (mean)
Time per request:       7.746 [ms] (mean, across all concurrent requests)
Transfer rate:          375.68 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.3      0       2
Processing:    27  382 289.5    307    1024
Waiting:        5  232 183.9    180     727
Total:         27  382 289.4    307    1024

Percentage of the requests served within a certain time (ms)
  50%    307
  66%    513
  75%    607
  80%    701
  90%    811
  95%    919
  98%    985
  99%   1019
 100%   1024 (longest request)
After this change
~/dev/zeit/next.js(canary) » ab -n 2000 -c 50 http://localhost:3000/error-in-ssr-render                           jj@lime
This is ApacheBench, Version 2.3 <$Revision: 1826891 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 200 requests
Completed 400 requests
Completed 600 requests
Completed 800 requests
Completed 1000 requests
Completed 1200 requests
Completed 1400 requests
Completed 1600 requests
Completed 1800 requests
Completed 2000 requests
Finished 2000 requests


Server Software:        
Server Hostname:        localhost
Server Port:            3000

Document Path:          /error-in-ssr-render
Document Length:        2778 bytes

Concurrency Level:      50
Time taken for tests:   1.608 seconds
Complete requests:      2000
Failed requests:        0
Non-2xx responses:      2000
Total transferred:      6042000 bytes
HTML transferred:       5556000 bytes
Requests per second:    1243.70 [#/sec] (mean)
Time per request:       40.203 [ms] (mean)
Time per request:       0.804 [ms] (mean, across all concurrent requests)
Transfer rate:          3669.15 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.2      0       2
Processing:    19   39   9.6     38      81
Waiting:        5   23   7.2     22      77
Total:         19   39   9.7     38      81

Percentage of the requests served within a certain time (ms)
  50%     38
  66%     42
  75%     44
  80%     44
  90%     47
  95%     54
  98%     80
  99%     81
 100%     81 (longest request)

@ijjk
Copy link
Member

ijjk commented Apr 11, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
buildDuration 8.9s 8.9s ⚠️ +40ms
nodeModulesSize 61 MB 61 MB ⚠️ +2.63 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
main-HASH.js gzip 6.25 kB 6.25 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..e3d8.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.3 kB 56.3 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
main-HASH.module.js gzip 4.78 kB 4.78 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.78 kB 6.78 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.5 kB 51.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
index.html gzip 918 B 918 B
link.html gzip 928 B 928 B
withRouter.html gzip 915 B 915 B
Overall change 2.76 kB 2.76 kB

Serverless Mode (Decrease detected ✓)
General Overall increase ⚠️
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
buildDuration 10.2s 11.6s ⚠️ +1.3s
nodeModulesSize 61 MB 61 MB ⚠️ +2.63 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
main-HASH.js gzip 6.25 kB 6.25 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..e3d8.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.3 kB 56.3 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
main-HASH.module.js gzip 4.78 kB 4.78 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.78 kB 6.78 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.5 kB 51.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall decrease ✓
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
_error.js gzip 233 kB 233 kB ⚠️ +84 B
404.html gzip 1.32 kB 1.32 kB
hooks.html gzip 958 B 958 B
index.js gzip 233 kB 233 kB ⚠️ +277 B
link.js gzip 243 kB 243 kB -225 B
routerDirect.js gzip 241 kB 241 kB -350 B
withRouter.js gzip 241 kB 241 kB ⚠️ +24 B
Overall change 1.19 MB 1.19 MB -190 B

@ijjk
Copy link
Member

ijjk commented Apr 11, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
buildDuration 9.7s 9.3s -354ms
nodeModulesSize 61 MB 61 MB ⚠️ +2.63 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
main-HASH.js gzip 6.25 kB 6.25 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..e3d8.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.3 kB 56.3 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
main-HASH.module.js gzip 4.78 kB 4.78 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.78 kB 6.78 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.5 kB 51.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
index.html gzip 918 B 918 B
link.html gzip 928 B 928 B
withRouter.html gzip 915 B 915 B
Overall change 2.76 kB 2.76 kB

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
buildDuration 10.4s 10.3s -67ms
nodeModulesSize 61 MB 61 MB ⚠️ +2.63 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
main-HASH.js gzip 6.25 kB 6.25 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..e3d8.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.3 kB 56.3 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
main-HASH.module.js gzip 4.78 kB 4.78 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.78 kB 6.78 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.5 kB 51.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall increase ⚠️
zeit/next.js canary Timer/next.js hotfix/externalize-next-server Change
_error.js gzip 233 kB 233 kB ⚠️ +25 B
404.html gzip 1.32 kB 1.32 kB
hooks.html gzip 958 B 958 B
index.js gzip 233 kB 233 kB ⚠️ +293 B
link.js gzip 243 kB 243 kB ⚠️ +33 B
routerDirect.js gzip 241 kB 241 kB ⚠️ +311 B
withRouter.js gzip 241 kB 241 kB -285 B
Overall change 1.19 MB 1.19 MB ⚠️ +377 B

@timneutkens timneutkens merged commit 1199c23 into vercel:canary Apr 11, 2020
@janus-reith
Copy link

janus-reith commented Apr 11, 2020

It seems like this benefits pages using revalidate and/or fallback.
I just updated from v9.3.4 to v9.3.5-canary.8, and although I didn't seem to have the described memory leak, before I had a constant increase in cpu utilization after deploying and going through my catalog(thereby triggering fallback creation of 90 products per page, revalidating each 30 mins.)

Now the docker containers ( 4 of them, shared static folder ) go back to idle (~0.02% CPU) afer going through several catalog pages in just 4-9 seconds.
Also, before the containers would use ~600 MB Memory afer creating all these fallback pages and running for some time, now they are at ~300 MB each and went down to 190 MB after a few minutes. I need to validate that, to be able to rule out other factor causing the increased memory so I will observe this for some time.

@Timer Timer deleted the hotfix/externalize-next-server branch April 11, 2020 15:05
@jakubriedl
Copy link

jakubriedl commented Apr 12, 2020

Thanks for quick fix. It fixed the issue and we can also see ~20% less CPU usage between 9.0.5 and 9.3.5-canary.8. 👏 👏 👏

@timneutkens
Copy link
Member

@jakubriedl thanks for the clear issue report, it really helped track down the issue 🙏

@Fonger
Copy link
Contributor

Fonger commented Apr 13, 2020

Any ETA for stable release of 9.3.5? Really look forward to it 💯

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Garbage explosion (memory leak type issue) Error page leak issue
6 participants