Collections.unmodifiableMap API:如果经常更新父Map,会有任何性能开销吗?

时间:2016-08-09 12:59:00

标签: java collections

我打算使用Collections类中的unmodifiableMap API。

我正在使用此API来限制其他类来修改我的父Map对象。

我知道这个API比创建Map的新副本更好,但是在频繁更新的情况下我仍然对性能有疑问。

如果我的父地图经常被修改 - 50K times per day(包括put和remove调用),这个unmodifiableMap API是否会为性能增加额外的开销?

1 个答案:

答案 0 :(得分:4)

首先,每天50K的修改并不多。它平均每秒不到一个。

其次,unmodifiableMap()仅返回原始地图的视图。它增加了访问原始地图值的微不足道的开销,但它不会影响直接对原始地图进行的修改。

第三,担心微观优化并不是确保绩效的好方法。猜测某些内容是否会以有意义的方式影响性能,这与从StackOverflow中随机回复粘贴代码片段一样有效,以便获得有效的程序。当您需要查找使您的计划变慢的内容时,请使用分析器,不要尝试提前计划纳秒(甚至是那样)的节省。