java动态缓存成长小纪(三)——缓存大小估算

我觉得对缓存认识,仅仅会写缓存及其淘汰算法是肤浅的、不负责任的。我们还需要决定,什么样的数据是需要进行缓存,多大的数据才能进行缓存。

首先,缓存数据往往是读取次数非常频繁的,但是底层数据不能更新太快,否则会导致缓存的“脏读”。我在一本书上看到的是读写比要大于10。

另外,缓存数据不能太大,缓存数据过大会大大占用JVM内存空间,同样不利于程序响应。


所以,在添加缓存之前,需要知道缓存规模大小。


例:某个电网有大概100个水电站,系统需要提取这100个水电站的每日信息(double类型),时间尺度为15min,像这样的信息一共有10类(水位、气象、发电等...),问需要缓存多大?


答案:对于一个电站某日的1类信息,因为是每15min一次的,那么每小时4条数据,每天有96条数据,为double[96]。一共10类,即10个double[96],一共100个电站,故有100*10*double[96]的数据量。

大小可以估算一下:100*10*96*8≈8*10^5(bit),大约是1M的数据量。所以占用的内存空间不大。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值