这是一个更好地理解Java JVM的问题。
让我们说我们有一个16字节数组的类。它可能多于或少于16.仅举16例。 每个字节用作8个标志的集合。很多阅读。很少写。
通过将4个字节融合到ints
字段中,创建4个int字段会对性能产生什么影响。这样在读取这些标志时就不需要数组绑定检查。但是,您需要移位输入标志以寻址int
中的正确位。
标志写入在字节数组和ints
高速缓存上完成。
原因可能是字节数组在别处使用。我们不知道。我们只知道我们有这些字节,我们必须多次访问它。
在类实现中引入int
缓存是否值得?
编辑:我意识到其他人的写入不会被推送到int
缓存。因此缓存将给出错误的标志。但是,让我们想象一下,有一个系统范围的事件用于缓存刷新。