Tsp*_*oon 56 java android art-runtime android-5.0-lollipop
在最新的Android更新(SDK 21)中,似乎已向java.lang.Object添加了2个新变量:
private transient Class<?> shadow$_klass_;
private transient int shadow$_monitor_;
Run Code Online (Sandbox Code Playgroud)
我注意到它java.lang.Object
被简要地用于shadow$_monitor_
:
public int hashCode() {
int lockWord = shadow$_monitor_;
final int lockWordMask = 0xC0000000; // Top 2 bits.
final int lockWordStateHash = 0x80000000; // Top 2 bits are value 2 (kStateHash).
if ((lockWord & lockWordMask) == lockWordStateHash) {
return lockWord & ~lockWordMask;
}
return System.identityHashCode(this);
}
Run Code Online (Sandbox Code Playgroud)
但除此之外没有提及它们.它们是否与ART中的GC有关?还是某种原生的东西?
Pet*_*ter 26
它们确实与GC连接.他们似乎已被添加,以支持布鲁克斯的指针.我在这里找到了一些关于Brooks指针的信息:
这个想法是堆上的每个对象都有一个额外的引用字段.该字段指向对象本身,或者,一旦对象被复制到新位置,就指向该新位置.这将使我们能够使用mutator线程同时撤出对象
特别参见这两个提交:
libcore:a7c69f785f7d1b07b7da22cfb9150c584ee143f4
艺术品:9d04a20bde1b1855cefc64aebc1a44e253b1a13b
归档时间: |
|
查看次数: |
6439 次 |
最近记录: |