I have a small homelab running a few services, some written by myself for small tasks - so the load is basically just me a few times a day.

Now, I’m a Java developer during the day, so I’m relatively productive with it and used some of these apps as learning opportunities (balls to my own wall overengineering to try out a new framework or something).

Problem is, each app uses something like 200mb of memory while doing next to nothing. That seems excessive. Native images dropped that to ~70mb, but that needs a bunch of resources to build.

So my question is, what is you go-to for such cases?

My current candidates are Python/FastAPI, Rust and Elixir, but I’m open for anything at this point - even if it’s just for learning new languages.

  • leisesprecherOP
    link
    fedilink
    arrow-up
    6
    ·
    2 months ago

    Python caches bytecode, so the translation happens only once.

    Java loads everything immediately and keeps it in memory. All beans, all connections, etc. That takes up a ton of memory.

    • Luis Norambuena@programming.dev
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      2 months ago

      Python / FastAPI will be better than Java in your situation and is easy to learn. Go should be even better and is also relatively easy to learn!