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

本文探讨了缓存策略的重要性,不仅限于缓存及淘汰算法的实现,更强调了如何选择合适的缓存数据和确定其规模。通过案例分析,介绍了如何评估缓存所需的空间大小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

首先,缓存数据往往是读取次数非常频繁的,但是底层数据不能更新太快,否则会导致缓存的“脏读”。我在一本书上看到的是读写比要大于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的数据量。所以占用的内存空间不大。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值