上一篇:微软在线广告全球测试 未来软件可免费 >>
Java编程测试1M内存可用来缓存多少对象
| public void testSpike(){ print("最大的内存为:"+Runtime.getRuntime().maxMemory()/1024); print("总的内存为:"+Runtime.getRuntime().totalMemory()/1024); print("=================================="); long currMemory=Runtime.getRuntime().freeMemory(); print("目前可用的内存为:"+currMemory/1024); print("=================================="); Map cache=new HashMap(); for (int i = 0; i < 500000; i++) { MockBean bean=new MockBean(); bean.setId(i); bean.setName("jerry"+i); bean.setValue(i+"jerry"); cache.put(String.valueOf(i), bean); long tempMemory=Runtime.getRuntime().freeMemory(); if((currMemory-tempMemory)/1024==1024){ print("此时可用的内存为:"+tempMemory/1024); print("此时缓存了:"+i+"个对象"); break; } } print("=================================="); cache.clear(); long tempMemory=Runtime.getRuntime().freeMemory(); print("目前可用的内存为:"+tempMemory/1024); print("消耗的内存为:"+(currMemory-tempMemory)/1024); print("=================================="); Runtime.getRuntime().gc(); tempMemory=Runtime.getRuntime().freeMemory(); print("目前可用的内存为:"+tempMemory/1024); print("消耗的内存为:"+(currMemory-tempMemory)/1024); } private void print(String msg){ System.out.println(msg); } |
在我机器上运行的结果是1M内存可缓存大概4479个对象,同时可以看到,在cache.clear后内存并没有变化,因为gc是没那么及时的,这个时候显式的调用gc则会发现可用的内存量甚至比最初都多。
当然,这里只是个简单的测试,这里测试的也只是缓存一个非常简单的bean对象,缓存的对象消耗的内存大小还需要根据这个对象中具体的内容而定,比如当缓存的是blob类型的字段的时候,可想而知,这个时候消耗的内存量绝对是不同的。
这里只是建议大家在对系统性能做优化时最好根据需要缓存的内容做一个估算,设置好应用所需要的jvm的内存值,以便充分利用服务器的硬件资源。
下一篇:新测试版Vista和开发工具本周发布 >>
相关文章:
- · 一招搞定nb46.com这个超级流氓
- · 看看上网助手背后的“故事”
- · 雅虎助手恶意干扰超级兔子清理王运行
- · 安全清晰互联互通 Vista主要特性揭密
- · Skype否认软件遭破解 称克隆软件缺乏安全
- · 赛门铁克称Vista不如XP安全微软是白费努力
- · Windows Vista中Photostory将逐渐消失
- · Vista 5472仍未改变Windows 3.1对话框
- · 深入体验Windows Vista 5472新特性
- · 解析Vista与系统不协调的三大工具界面
- · Win Vista新功能介绍之网络映射的使用
- · 小编谈近期工具软件
- · 没有什么不可以 电脑和软件也来共产主义
- · PS数码暗房:将蓝天白云变成黄昏夕阳
- · 盖茨刚退休微软高管闪电离职 为鲍尔默心腹
- · 徐静蕾要跑啦!利益驱动 名人博客自立门户
- · 敏思博客将关闭 危机能否代表web2.0
- · 后盖茨时代来临 软件巨人大胆扶植新领袖
- · photoshop滤镜打造绚彩水晶花朵
- · 为不同设计需求选择合适的photoshop滤镜
- · 盖茨离开后:微软还是微软
- · vizros外挂滤镜轻松实现画面卷曲特效
- · 网页篡改猖獗,防篡改战争进行时
- · 用photoshop滤镜模拟毛笔笔触特效
- · 微软推出Live Messenger 实施网络服务战略
- · 体验新服务 google notebook 试用报告
- · Live不满足仅仅进驻浏览器 将登陆Windows
- · google有趣新服务google notebook 上线
- · 微软发布机器人技术软件开发工具包
- · google music音乐搜索服务正式上线
- · 微软将推出IE7 新增阻挠网络诈骗功能
- · google health即将推出 为健康保驾护航
- · google推混合地图服务 应战微软虚拟地球
- · 微软全球同步发布Windows Live Messenger
- · 微软发布测试版WCE6.0 明年上半年推正式版
- · IT程序员在35岁后的三条出路
- · google搜索引擎另类使用技巧
- · google的特殊服务:相关搜索
