-
Notifications
You must be signed in to change notification settings - Fork 196
Description
Hey guys,
We use webpack in our services to bundle code.
A webpack compiler is being created for each bundling process by importing webpack
creator function from webpack
.
Webpack is using enhanced-resolve to resolve module paths.. We also have custom resolvers that extends ResolvePluginInstance
which is a enhanced-resolve
resolver AFAIK.
Those resolvers are injected to webpack using the plugins
property
After a while, we saw that as the service bundle code a memory leak is increasing in our service.
(for each bundle a new compiler of webpack is created)
As you can see in the heap-dump picture, it is related to joinCache
property.
This property can be found here. this is a non-exported global variable that never cleans.
As I can see it, you can help us in 2 ways,
- Clean this Map every X interval (it will be amazing if you can provide a configuration for it)
- Provide a function that cleans that cache and we will call it after every bundle process.
LMK if you need any further data/explanations,
Thanks 🙏🏼🙏🏼
Activity
alexander-akait commentedon Apr 24, 2024
Oh, it was for cache, how many run do you have?
Galcarmi commentedon Apr 25, 2024
@alexander-akait The service runs (potentially) infinite bundling processes
Galcarmi commentedon Apr 25, 2024
I can create a PR for adding a clearCache function, WDYT?
By the way, there is a third option to use LRU cache object with fixed size
Galcarmi commentedon Apr 29, 2024
@alexander-akait 🙏🏼
Galcarmi commentedon Apr 30, 2024
created a fork with the fix
#418
i'll try it on my servers and update..
Galcarmi commentedon May 2, 2024
Well, seems like it works, can we do something similar for enhanced-resolve?