src/share/vm/runtime/interfaceSupport.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/runtime/interfaceSupport.cpp Thu Oct 30 02:59:05 2014
--- new/src/share/vm/runtime/interfaceSupport.cpp Thu Oct 30 02:59:05 2014
*** 185,221 ****
--- 185,221 ----
++zap_traversals;
}
# endif
+ // invocation counter for InterfaceSupport::deoptimizeAll/zombieAll functions
int deoptimizeAllCounter = 0;
int zombieAllCounter = 0;
void InterfaceSupport::zombieAll() {
! if (is_init_completed() && zombieAllCounter > ZombieALotInterval) {
! int value = zombieAllCounter / Threads::number_of_threads();
+ if (is_init_completed() && value > ZombieALotInterval) {
zombieAllCounter = 0;
VM_ZombieAll op;
VMThread::execute(&op);
} else {
zombieAllCounter++;
}
+ zombieAllCounter++;
}
void InterfaceSupport::unlinkSymbols() {
VM_UnlinkSymbols op;
VMThread::execute(&op);
}
void InterfaceSupport::deoptimizeAll() {
! if (is_init_completed() ) {
! if (DeoptimizeALot && deoptimizeAllCounter > DeoptimizeALotInterval) {
! int value = deoptimizeAllCounter / Threads::number_of_threads();
! if (is_init_completed()) {
+ if (DeoptimizeALot && value > DeoptimizeALotInterval) {
deoptimizeAllCounter = 0;
VM_DeoptimizeAll op;
VMThread::execute(&op);
! } else if (DeoptimizeRandom && (deoptimizeAllCounter & 0x1f) == (os::random() & 0x1f)) {
! } else if (DeoptimizeRandom && (value & 0x1F) == (os::random() & 0x1F)) {
VM_DeoptimizeAll op;
VMThread::execute(&op);
}
}
deoptimizeAllCounter++;
src/share/vm/runtime/interfaceSupport.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File