-
-
Notifications
You must be signed in to change notification settings - Fork 925
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Re-add an mbean for monitoring cache invalidations.
This is for #4384. For this initial version, methods and constants only have a single value indicating validation count globally. For constants, this will aggregate all constant names (which are invalidated separately). For methods, this will aggregate all class hierarchy invalidations, which will frequently mean a single invalidation event will increment this value many times, depending on the size of the hierarchy below it. This latter point could be improved but we don't really have a clear place to say "this is the top invalidation" at the moment.
- 9.4.12.0
- 9.4.11.0
- 9.4.10.0
- 9.4.9.0
- 9.4.8.0
- 9.4.7.0
- 9.4.6.0
- 9.4.5.0
- 9.4.4.0
- 9.4.3.0
- 9.4.2.0
- 9.4.1.0
- 9.4.0.0
- 9.3.15.0
- 9.3.14.0
- 9.3.13.0
- 9.3.12.0
- 9.3.11.0
- 9.3.10.0
- 9.3.9.0
- 9.3.8.0
- 9.3.7.0
- 9.3.6.0
- 9.3.5.0
- 9.3.4.0
- 9.3.3.0
- 9.3.2.0
- 9.3.1.0
- 9.3.0.0
- 9.2.21.0
- 9.2.20.1
- 9.2.20.0
- 9.2.19.0
- 9.2.18.0
- 9.2.17.0
- 9.2.16.0
- 9.2.15.0
- 9.2.14.0
- 9.2.13.0
- 9.2.12.0
- 9.2.11.1
- 9.2.11.0
- 9.2.10.0
- 9.2.9.0
- 9.2.8.0
- 9.2.7.0
- 9.2.6.0
- 9.2.5.0
- 9.2.4.1
- 9.2.4.0
- 9.2.3.0
- 9.2.2.0
- 9.2.1.0
- 9.2.0.0
- 9.1.17.0
- 9.1.16.0
- 9.1.15.0
Showing
10 changed files
with
90 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
package org.jruby.management; | ||
|
||
import java.util.concurrent.atomic.AtomicLong; | ||
|
||
public class Caches implements CachesMBean { | ||
private final AtomicLong methodInvalidations = new AtomicLong(0); | ||
private final AtomicLong constantInvalidations = new AtomicLong(0); | ||
|
||
@Override | ||
public long getMethodInvalidationCount() { | ||
return methodInvalidations.get(); | ||
} | ||
|
||
@Override | ||
public long getConstantInvalidationCount() { | ||
return constantInvalidations.get(); | ||
} | ||
|
||
public long incrementMethodInvalidations() { | ||
return methodInvalidations.incrementAndGet(); | ||
} | ||
|
||
public long incrementConstantInvalidations() { | ||
return constantInvalidations.incrementAndGet(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
package org.jruby.management; | ||
|
||
public interface CachesMBean { | ||
public long getMethodInvalidationCount(); | ||
public long getConstantInvalidationCount(); | ||
} |
12 changes: 0 additions & 12 deletions
12
core/src/main/java/org/jruby/management/MethodCacheMBean.java
This file was deleted.
Oops, something went wrong.
30 changes: 30 additions & 0 deletions
30
core/src/main/java/org/jruby/runtime/opto/ConstantInvalidator.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
package org.jruby.runtime.opto; | ||
|
||
import org.jruby.management.Caches; | ||
|
||
import java.util.List; | ||
|
||
/** | ||
* A validator specific to how we manage Ruby constants. | ||
*/ | ||
public class ConstantInvalidator extends SwitchPointInvalidator { | ||
private final Caches caches; | ||
|
||
public ConstantInvalidator(Caches caches) { | ||
this.caches = caches; | ||
} | ||
|
||
@Override | ||
public void invalidate() { | ||
// order is important; invalidate before increment | ||
super.invalidate(); | ||
caches.incrementConstantInvalidations(); | ||
} | ||
|
||
@Override | ||
public void invalidateAll(List<Invalidator> invalidators) { | ||
// order is important; invalidate before increment | ||
super.invalidateAll(invalidators); | ||
caches.incrementConstantInvalidations(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters