内容:
我正在使用netty并定义了一个处理程序,以便对传入/传出的流量进行计数和分类。为此,我使用了一个如下的enumMap:

EnumMap<MyEnum, AtomicLong>

但是现在我已经意识到,只有一个线程在操纵值(以前我认为它是多个线程,netty似乎保证每个通道一个线程)。这意味着不需要AtomicLong。 但是,由于AtomicLong是原始long的包装器,而Long是不可变的类型,因此我有理由认为仅将AtomicLong交换为Long会降低性能。

关于这个有什么想法吗?

我可能应该做的是移至int并删除整个enumMap内容。

BR
塞巴斯蒂安

最佳答案

假设您只有一个线程:

如果AtomicLong避免了对象的创建,那么它比使用Long可以更快。

再次快速是使用long[]或根本不使用像TObjectLongHashMap这样的集合的对象

07-26 03:52