java - Collections.unmodifiableMap API : Any performance overhead in case of frequent updates to parent Map?

标签 java collections

我打算使用 unmodifiableMap来自 Collections 类的 API。

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

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

如果我的父 map 被频繁修改 - 每天 50K 次(包括 put 和 remove 调用),这个 unmodifiableMap API 是否会增加任何额外的性能开销?

最佳答案

首先,每天 5 万次修改并不算多。平均每秒不到一个。

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

第三,担心微优化并不是保证性能的好方法。猜测某事是否以有意义的方式影响性能与随机复制粘贴 StackOverflow 答案中的代码片段以获得工作程序一样有效。当您需要找出导致程序变慢的原因时,请使用分析器,不要尝试提前计划节省多少纳秒(如果是纳秒级的话)。

关于java - Collections.unmodifiableMap API : Any performance overhead in case of frequent updates to parent Map?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38851458/

相关文章:

java.lang.StringIndexOutOfBoundsException : String index out of range in yuicompressor

java - 在根据值对 map 进行排序时,一些值丢失了。是什么导致了这种奇怪的行为?

c# - 将 IList<Derived> 转换为 IReadOnlyCollection<Base>

java - 树集与树

java - 使 ArrayList 元素不区分大小写

scala - 优雅的表达方式 xs.sort.head

java - Tomcat 在关机时挂起

java - 运行 mvn liquibase :diff to update database 时发现多个目录匹配架构

java - 无法从外部包访问java.awt.Queue

java - 如何使用 robolectric 来测试具有额外 Intent 数据的 Activity