3 ms·
I think that memory limited apps are more common, at least when they're bootstrapped. Look at Digital Ocean, Linode or DreamHost. You get a VPS for $20 bucks wi
by virmundi 12y ago
I think that memory limited apps are more common, at least when they're bootstrapped. Look at Digital Ocean, Linode or DreamHost. You get a VPS for $20 bucks with 2 GB of ram. My phone has 2 GB. My laptops have 16 GB. Life is different on these types of machines.
This makes picking tech rather difficult. On the one hand C++ or D would work well here since they both offer good memory management (D's hybrid approach is nice). They are incredibly heavy (and D confuses me. The collection wars still come: up Tango vs Phoebe). So i don't know how productive I'd be given that I'm the only person in my startup. On the other hand the JVM can tune itself and even Clojure so maybe memory wouldn't be an issue for a higher level language.
Picking a database is hard too. I want to use NoSQL (wrote a book on it, should use it). I like ArangoDB. Sadly, like MongoDB it is mmapped. There are no efficient, swanky memory management tricks like you get in an older model SQL engine. But it makes sharding/replicating a breeze. So rather than having to tweak the crap out of MySQL or Postgres and get into the engine replacement (eventually), I take a hit up front. I just have to vertically scale ArangoDB for a while until it makes more sense to replicate/shard.
- KFW504 12y agoFair points...D confuses me too!
- tracker1 12y agoI made my own comment.. but even with GC based environments, if you can control when GC happens you can set it up to run more frequently than the system controls in place. My node processing scripts tend to stay under 50mb (usually closer to 20), and services are usually pretty light as well. You don't necessarily need to resort to a lower level language to avoid using too much memory.