3 ms·
You are correct to be calling out applications that are indifferent to memory usage. The commenters who answer "ram is cheap", "your time is worth more than the
by pm24601 15y ago
You are correct to be calling out applications that are indifferent to memory usage. The commenters who answer "ram is cheap", "your time is worth more than the ram",etc. are missing critical points:
1) RAM is a finite resource
2) Managing excessive RAM usage (even without swapping) requires OS effort
3) indifferent memory management is a sign of sloppy coding and usually is a memory leak
4) casual memory usage does not fly in the mobile power constrained world that is now upon us.
#1: Ram is finite
If a computer with 1 terabyte memory with all but 1 gb consumed by a memory-indifferent program, is going to behave poorly. The OS is spending a lot of time trying to find free space every time the program or OS needs new memory for any reason.
#2 Managing excessive Ram usage is not free:
The OS is constantly shuffling stuff around in memory, updating pointers, etc. If the OS has more active memory to manage then the CPU is spending more time to do this overhead work that is not available to actually run the program.
#3 Excessive memory usage = sloppy programming (ers)
Whenever I have found code that is memory-indifferent I have found bugs beyond memory usage:
1) massive http-session size. On a web server if each session takes "only" 2 megabytes, that means 1 high-end server can handle about 4000 users (8gb of session data) before bogging down.
2) memory leaks - temporary data created but never released to the OS.
#4 : mobile
Memory uses power. Remember this is a key reason why Flash is dead on mobile. Adobe could never reduce the memory/power hungriness of Flash.
As a Java developer, I routinely constrain the JavaVM's memory during testing to just above the target footprint. I want to know if there is a memory issue before it blows up in my face on a busy day.