我打算使用 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/