我有一个Java应用程序,它使用spymemcached库(http://code.google.com/p/spymemcached)来读写对象到memcached。估算memcached内Java对象的大小
应用程序总是将相同类型的对象缓存到memcached。缓存的对象始终是5或6个java.util.Strings的ArrayList。使用SizeOf库(http://www.codeinstructions.com/2008/12/sizeof-for-java.html),我确定ArrayList的平均深度大小约为800字节。
总体而言,我已将12 GB的RAM分配给memcached。我的问题是:有多少这些对象可以memcached持有?
我不清楚如果使用SizeOf中的“800字节”度量标准是正确的,或者这是误导性的。例如,SizeOf计数每个字符为2个字节。我知道我的字符串中的每个字符都是常规的ASCII字符。我相信spymemcached使用Java序列化,并且我不确定是否会导致每个char占用1个字节或2个字节。
此外,我不知道每个对象开销memcached使用多少。所以计算应考虑memcached用于其内部数据结构的RAM。
我不需要一个完全100%的数字。一个粗糙的信封计算会很好。
您是否将Java对象序列化为memcached? – 2011-04-01 18:37:44
是的,似乎spymemcached正在使用Java序列化。 – 2011-04-01 19:32:25