Inconsistent performance
Steven Grimm
sgrimm at facebook.com
Thu Apr 19 18:29:31 UTC 2007
Lexington Luthor wrote:
> memcached is certainly not causing your performance problem. Both java
> and ruby have garbage collectors which can cause huge latency problems
> particularly if every 30ms matters to you. I don't know about ruby but
> java's GC can not be turned off in your code, so you will likely have
> GC-related latency problems. Some VM language implementations e.g.
> CPython will let you turn off the GC though.
On a multi-CPU machine, I'd recommend switching to Java's concurrent
garbage collector, which in most cases basically eliminates long GC
delays. It does cost more total CPU time than the non-concurrent
collectors but it makes things much smoother.
What does CPython do if you turn off GC? Does the process just keep
getting bigger and bigger until the machine runs out of memory? Python
used reference-counting internally last I looked; if you turn off
garbage collection, how does it ever free up objects with circular
references? Or do you just have to be careful not to create circular
references in that case?
-Steve
More information about the memcached
mailing list