Skip to content

Conversation

@FoxxMD
Copy link
Owner

@FoxxMD FoxxMD commented Jan 21, 2026

Checklist before requesting a review

Describe your changes

  • Use compiled json schema files in production, instead of generating at runtime
    • Removes need to load vega generator which is memory heavy
  • Use dynamic imports for sources/clients

Issue number and link, if applicable

* Use dynamic import for schema based on environment
  * If production use pre-generated json to avoid loading vega generator -- big memory footprint reduction
  * If not production use vega so schema is always up to date
@netlify
Copy link

netlify bot commented Jan 21, 2026

Deploy Preview for multi-scrobbler ready!

Name Link
🔨 Latest commit 50e6137
🔍 Latest deploy log https://app.netlify.com/projects/multi-scrobbler/deploys/697104bef04abf00081e08e0
😎 Deploy Preview https://deploy-preview-453--multi-scrobbler.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@FoxxMD FoxxMD added the safe to test trusted to build image label Jan 21, 2026
@github-actions
Copy link
Contributor

📦 A new release has been made for this pull request.

To play around with this PR, pull an image:

  • foxxmd/multi-scrobbler:pr-453

Images are available for x86_64 and ARM64.

Latest commit: 50e6137

@FoxxMD FoxxMD mentioned this pull request Jan 21, 2026
2 tasks
@drake7707
Copy link

The changes are effective, as mentioned in #348 .

FYI: Typescript 5.9 introduces import defer, https://devblogs.microsoft.com/typescript/announcing-typescript-5-9/#support-for-import-defer

@monkeyworknet
Copy link

  • container launched without issue
  • my very basic workflow (last.fm -> listenbrainz & koito) functioned as expected
  • memory usage on launch of image spiked to ~200MB but then fell back down to hold steady at ~90MB.

This is a massive improvement over the current mainline image, which was using 400+MB of memory steadily.

Thank you for the quick turnaround on the optimizations - obviously, my tests are not indepth but from what I can see, this is working as I expect.


CONTAINER ID   NAME                              CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O         PIDS

4e5912087542   multi-scrobbler                   0.18%     91.64MiB / 38.25GiB   0.23%     1.5MB / 99.8kB    393kB / 1.72MB    48

@FoxxMD
Copy link
Owner Author

FoxxMD commented Jan 22, 2026

@drake7707 typescript defer

Hey that's pretty neat! It doesn't look like nodejs supports defer though, yet.

My plan for memory optimization after this is to try running ts on node natively which defer would not be supported in. tsx, the current runtime interpreter, loads all of ts into memory to work so removing that would be another big gain (like ~50mb).

Thanks everyone for the quick feedback on testing this.

@FoxxMD FoxxMD merged commit 49d09d0 into master Jan 22, 2026
21 of 23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

safe to test trusted to build image

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants