public interface MemoryPoolMXBean extends PlatformManagedObject
ã¡ã¢ãªãŒã»ãããŒãžã£ã«ãã管çãããŸãã
Javaä»®æ³ãã·ã³ã¯ããã®ã€ã³ã¿ãã§ãŒã¹ã®å®è£
ã¯ã©ã¹ã®1ã€ä»¥äžã®ã€ã³ã¹ã¿ã³ã¹ãæã¡ãŸãã ãã®ã€ã³ã¿ãã§ãŒã¹ãå®è£
ããã€ã³ã¹ã¿ã³ã¹ã¯MXBeanã§ããããããååŸããã«ã¯ãManagementFactory.getMemoryPoolMXBeans()ã¡ãœãããåŒã³åºãããplatform MBeanServerã®ã¡ãœããã䜿çšããŸãã
MBeanServerå ã§ã¡ã¢ãªãŒã»ããŒã«ã®MXBeanãäžæã«èå¥ããããã®ObjectNameã¯æ¬¡ã®ãšããã§ãã
java.lang:type=MemoryPool,name=pool's name
ãããååŸããã«ã¯ãPlatformManagedObject.getObjectName()ã¡ãœãããåŒã³åºããŸãã
Javaä»®æ³ãã·ã³ã¯ããªããžã§ã¯ãå²åœãŠçšã®ããŒããæã¡ãã¡ãœããé åãšJavaä»®æ³ãã·ã³ã®å®è¡çšã®ããŒã以å€ã®ã¡ã¢ãªãŒãä¿æããŠããŸãã Javaä»®æ³ãã·ã³ã¯ã1ã€ä»¥äžã®ã¡ã¢ãªãŒã»ããŒã«ãä¿æã§ããŸãã åã¡ã¢ãªãŒã»ããŒã«ã¯æ¬¡ã®åã®ã©ã¡ããã®ã¡ã¢ãªãŒé åã衚ããŸãã
getUsage()ã¡ãœããã¯ãã¡ã¢ãªãŒã»ããŒã«ã®çŸåšã®äœ¿çšéã®æšå®å€ãæäŸããŸãã ã¬ããŒãžã»ã³ã¬ã¯ããããã¡ã¢ãªãŒã»ããŒã«ã®å Žåã¯ãusedã¡ã¢ãªãŒã®éã«ããŒã«å
ã®ãã¹ãŠã®ãªããžã§ã¯ã(å°éã§ãããªããžã§ã¯ãããã³å°éã§ããªããªããžã§ã¯ãã®äž¡æ¹ãå«ã)ã«ãã£ãŠå æãããã¡ã¢ãªãŒãå«ãŸããŸãã
äžè¬ã«ããã®ã¡ãœããã¯è² è·ã®å°ãªãæäœã§ãããã®ã¡ã¢ãªãŒäœ¿çšéãååŸããŸãã ãªããžã§ã¯ããé£ç¶ããŠããã¯ãããªãå Žåãªã©ãäžéšã®ã¡ã¢ãªãŒã»ããŒã«ã§ã¯ããã®ã¡ãœããã¯çŸåšã®ã¡ã¢ãªãŒäœ¿çšéãå€å®ããã®ã«ããããã®èšç®ãå¿ èŠãšããè² è·ã®å€§ããæäœã«ãªãå¯èœæ§ããããŸãã å®è£ ã¯ã該åœããç¶æ³ãããã¥ã¡ã³ãåããå¿ èŠããããŸãã
getPeakUsage()ã¡ãœããã«ãã£ãŠè¿ãããresetPeakUsage()ã¡ãœããã®åŒåºãã«ãã£ãŠãªã»ãããããŸãã
setUsageThresholdã¡ãœããã䜿ã£ãŠèšå®ã§ããŸãã ãããå€ãæ£ã®å€ã«èšå®ããããšããã®ã¡ã¢ãªãŒã»ããŒã«ã§äœ¿çšéãããå€ã®è¶
éãã§ãã¯ãæå¹ã«ãªããŸãã 䜿çšéãããå€ããŒãã«èšå®ããããšããã®ã¡ã¢ãªãŒã»ããŒã«ã§äœ¿çšéãããå€ã®è¶
éãã§ãã¯ãç¡å¹ã«ãªããŸãã isUsageThresholdSupported()ã¡ãœããã䜿ãã°ããã®æ©èœããµããŒããããŠãããã©ãããå€å®ã§ããŸãã
Javaä»®æ³ãã·ã³ã¯ãæé©ãªææ(éåžžã¯ã¬ããŒãžã»ã³ã¬ã¯ã·ã§ã³æ)ã«ã䜿çšéãããå€è¶
éãã§ãã¯ãã¡ã¢ãªãŒã»ããŒã«ããšã«å®è¡ããŸãã åã¡ã¢ãªãŒã»ããŒã«ã¯ãã¡ã¢ãªãŒã»ããŒã«äœ¿çšéããããå€ãè¶
éããŠããããšãJavaä»®æ³ãã·ã³ãæ€åºãããã³ã«å¢å ãã䜿çšéãããå€ã«ãŠã³ããä¿æããŠããŸãã
ãã®ç®¡çå¯èœãªäœ¿çšéãããå€å±æ§ã¯ãã¡ã¢ãªãŒäœ¿çšéã®å¢å åŸåãäœããªãŒããŒãããã§ç£èŠããããã«èšèšãããŠããŸãã 䜿çšéãããå€ã¯ãäžéšã®ã¡ã¢ãªãŒã»ããŒã«ã«é©ããªãå ŽåããããŸãã ããšãã°ãå€ãã®Javaä»®æ³ãã·ã³å®è£ ã§äœ¿çšãããå ±éã®ã¬ããŒãžã»ã³ã¬ã¯ã¿ã§ããäžä»£å¥ã¬ããŒãžã»ã³ã¬ã¯ã¿ã¯ã幎霢ã§ãªããžã§ã¯ããåºåããŠã2äžä»£ä»¥äžã管çããŸãã ã»ãšãã©ã®ãªããžã§ã¯ãã¯ããã£ãšãè¥ãäžä»£ (è¥ãã¡ã¢ãªãŒã»ããŒã«)ã«å²ãåœãŠãããŸãã è¥ãã¡ã¢ãªãŒã»ããŒã«ã¯ããã£ã±ãã«ãªãããã«èšèšãããŠããŸãããŸããã¬ããŒãžã»ã³ã¬ã¯ã·ã§ã³æã«ã»ãšãã©ã®å Žåå°éäžå¯èœãªçæé皌åã®ãªããžã§ã¯ããå容ããããããè¥ãã¡ã¢ãªãŒã»ããŒã«ãåéãããšãã¡ã¢ãªãŒç©ºéã®ã»ãšãã©ãè§£æŸãããŸãã ãã®ã±ãŒã¹ã§ã¯ãè¥ãã¡ã¢ãªãŒã»ããŒã«ã䜿çšéãããå€ããµããŒãããªãã»ããé©åã§ãã å ããŠã䜿çšéã®ãããå€ãšæ¯èŒãããšãã®ãªãŒããŒãããã¯ããªããžã§ã¯ãå²åœãŠã®ã³ã¹ããããé«ãã€ãã®ã§ã1ã€ã®ã¡ã¢ãªãŒã»ããŒã«ãžã®ãªããžã§ã¯ãã®å²åœãŠã®ã³ã¹ããããããŠäœãå Žå(äŸãååãã€ã³ã¿äº€æãªã©)ãJavaä»®æ³ãã·ã³ã¯ã¡ã¢ãªãŒã»ããŒã«ã®äœ¿çšéãããå€ããµããŒãããŸããã
ã·ã¹ãã ã®ã¡ã¢ãªãŒäœ¿çšéã¯ãããŒãªã³ã°ããããå€éç¥ã®ã¡ã«ããºã ã䜿ã£ãŠç£èŠã§ããŸãã
ã¢ããªã±ãŒã·ã§ã³ã§ã¯ããã¹ãŠã®ã¡ã¢ãªãŒã»ããŒã«å
±éã®getUsage()ã¡ãœããããŸãã¯äœ¿çšéãããå€ããµããŒãããã¡ã¢ãªãŒã»ããŒã«å°çšã®isUsageThresholdExceeded()ã¡ãœãããåŒã³åºãããšã«ãããã¢ããªã±ãŒã·ã§ã³èªäœã®ã¡ã¢ãªãŒäœ¿çšéãç¶ç¶çã«ç£èŠã§ããŸãã æ¬¡ã«ãã¿ã¹ã¯ã®é
åãšåŠçã«ç¹åããã¹ã¬ãããæã€ãµã³ãã«ã»ã³ãŒãã瀺ããŸãã ãã®ãµã³ãã«ã»ã³ãŒãã¯ãã©ã®åºéã§ãã¡ã¢ãªãŒäœ¿çšéã«åºã¥ããŠæ°ããã¿ã¹ã¯ãåãå
¥ããŠåŠçãããã©ãããå€å®ããŸãã ã¡ã¢ãªãŒäœ¿çšéã䜿çšéãããå€ãè¶
ããå Žåããã®ãµã³ãã«ã»ã³ãŒãã¯ãã¹ãŠã®æªåŠçã®ã¿ã¹ã¯ãã»ãã®ä»®æ³ãã·ã³ã«åé
åããã¡ã¢ãªãŒäœ¿çšéã䜿çšéãããå€ä»¥äžã«æ»ããŸã§æ°ããã¿ã¹ã¯ã®åãå
¥ãã忢ããŸãã
// Assume the usage threshold is supported for this pool.
// Set the threshold to myThreshold above which no new tasks
// should be taken.
pool.setUsageThreshold(myThreshold);
....
boolean lowMemory = false;
while (true) {
if (pool.isUsageThresholdExceeded()) {
// potential low memory, so redistribute tasks to other VMs
lowMemory = true;
redistributeTasks();
// stop receiving new tasks
stopReceivingTasks();
} else {
if (lowMemory) {
// resume receiving tasks
lowMemory = false;
resumeReceivingTasks();
}
// processing outstanding task
...
}
// sleep for sometime
try {
Thread.sleep(sometime);
} catch (InterruptedException e) {
...
}
}
getUsageThresholdCount()ã¡ãœããã«ããè¿ããã䜿çšéãããå€ã«ãŠã³ãã䜿ã£ãŠãè¿ãããã¡ã¢ãªãŒäœ¿çšéã2ã€ã®ããŒã«éã§ãããå€ä»¥äžã§ãããã©ãããå€å®ã§ããŸãã
次ã«ç€ºãã®ã¯ãã¡ã¢ãªãŒã»ããŒã«ãã¡ã¢ãªãŒäžè¶³ã®å Žåã«äœããã®ã¢ã¯ã·ã§ã³ãå®è¡ããã¢ã¯ã·ã§ã³åŠçäžã«ã¡ã¢ãªãŒäœ¿çšéã®å€åãç¡èŠãããµã³ãã«ã»ã³ãŒãã§ãã
// Assume the usage threshold is supported for this pool.
// Set the threshold to myThreshold which determines if
// the application will take some action under low memory condition.
pool.setUsageThreshold(myThreshold);
int prevCrossingCount = 0;
while (true) {
// A busy loop to detect when the memory usage
// has exceeded the threshold.
while (!pool.isUsageThresholdExceeded() ||
pool.getUsageThresholdCount() == prevCrossingCount) {
try {
Thread.sleep(sometime)
} catch (InterruptException e) {
....
}
}
// Do some processing such as check for memory usage
// and issue a warning
....
// Gets the current threshold count. The busy loop will then
// ignore any crossing of threshold happens during the processing.
prevCrossingCount = pool.getUsageThresholdCount();
}
䜿çšéãããå€éç¥ã¯ãMemoryMXBeanã«ããçºè¡ãããŸãã ã¡ã¢ãªãŒã»ããŒã«ã®ã¡ã¢ãªãŒäœ¿çšéã䜿çšéãããå€ã«éãããè¶
ããããšãJavaä»®æ³ãã·ã³ãæ€åºãããšãä»®æ³ãã·ã³ã¯MemoryMXBeanãããªã¬ãŒããŠäœ¿çšéãããå€è¶
ééç¥ãçºè¡ããŸãã 䜿çšéãããã倿ªæºã«ãªããåã³è¶
éãããŸã§ãå¥ã®äœ¿çšéãããå€è¶
ééç¥ã¯çæãããŸããã
次ã®ãµã³ãã«ã»ã³ãŒãã¯ãåè¿°ã®æåã®ãµã³ãã«ã»ã³ãŒããšåãããžãã¯ãå®è£ ããŠããŸãããããŒãªã³ã°ã§ã¯ãªãã䜿çšéãããå€éç¥ã¡ã«ããºã ã䜿ã£ãŠã¡ã¢ãªãŒäžè¶³æ¡ä»¶ãæ€åºããŠããŸãã ãã®ãµã³ãã«ã»ã³ãŒãã§ã¯ãéç¥ã®åãåãã«ãããéç¥ãªã¹ããŒã¯æªåŠçã¿ã¹ã¯ã®åé åãã¿ã¹ã¯ã®åãåãã®åæ¢ããããã¯åãåãã¿ã¹ã¯ã®åéãªã©ã®å®éã®ã¢ã¯ã·ã§ã³ãå®è¡ããããå¥ã®ã¹ã¬ããã«éç¥ããŸãã handleNotificationã¡ãœããã¯ãããããŠå°éã®äœæ¥ãå®è¡ããŠé å»¶ãªãã«å€ãè¿ãã以éã®éç¥ã®é åžã§é å»¶ãçããªãããã«èšèšãããå¿ èŠããããŸãã æéã®ãããã¢ã¯ã·ã§ã³ã¯å¥ã®ã¹ã¬ããã«ããå®è¡ãããå¿ èŠããããŸãã éç¥ãªã¹ããŒã¯ãè€æ°ã®ã¹ã¬ããã«ããåŒã³åºãããããšãã§ããŸãããããã£ãŠããªã¹ããŒãå®è¡ããã¿ã¹ã¯ã¯é©åã«åæåãããå¿ èŠããããŸãã
class MyListener implements javax.management.NotificationListener {
public void handleNotification(Notification notification, Object handback) {
String notifType = notification.getType();
if (notifType.equals(MemoryNotificationInfo.MEMORY_THRESHOLD_EXCEEDED)) {
// potential low memory, notify another thread
// to redistribute outstanding tasks to other VMs
// and stop receiving new tasks.
lowMemory = true;
notifyAnotherThread(lowMemory);
}
}
}
// Register MyListener with MemoryMXBean
MemoryMXBean mbean = ManagementFactory.getMemoryMXBean();
NotificationEmitter emitter = (NotificationEmitter) mbean;
MyListener listener = new MyListener();
emitter.addNotificationListener(listener, null, null);
// Assume this pool supports a usage threshold.
// Set the threshold to myThreshold above which no new tasks
// should be taken.
pool.setUsageThreshold(myThreshold);
// Usage threshold detection is enabled and notification will be
// handled by MyListener. Continue for other processing.
....
MemoryMXBeanããããå€éç¥ãçºè¡ããææãéç¥ãé
åžãããææã«ã€ããŠã®ä¿èšŒã¯ãããŸããã éç¥ãªã¹ããŒãåŒã³åºããããšãã¡ã¢ãªãŒã»ããŒã«ã®ã¡ã¢ãªãŒäœ¿çšéã䜿çšéãããå€ã2å以äžè¶
ããå¯èœæ§ããããŸãã MemoryNotificationInfo.getCount()ã¡ãœããã¯ãéç¥ãæ§ç¯ãããæç¹ã§ã¡ã¢ãªãŒäœ¿çšéã䜿çšéãããå€ãè¶
ããåæ°ãè¿ããŸãã ãã®åæ°ããgetUsageThresholdCount()ã¡ãœããã«ããè¿ãããçŸåšã®äœ¿çšéãããå€ã«ãŠã³ããšæ¯èŒããŠããã®ãããªç¶æ³ãçºçãããã©ãããå€å®ã§ããŸãã
MemoryMXBeanã«ãã£ãŠã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€è¶
ééç¥ãçºè¡ãããããã«ãã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€ã䜿ã£ãŠããã®äžéšã®ãã€ãæ°ã«å€ãèšå®ã§ããŸãã å ããŠãã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€ã«ãŠã³ããå¢ããããŸãã
isCollectionUsageThresholdSupported()ã¡ãœããã䜿ãã°ããã®æ©èœããµããŒããããŠãããã©ãããå€å®ã§ããŸãã
Javaä»®æ³ãã·ã³ã¯ãã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€ãã§ãã¯ãã¡ã¢ãªãŒã»ããŒã«ããšã«å®è¡ããŸãã ãã®ãã§ãã¯ã¯ãã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€ãæ£ã®å€ã«èšå®ãããŠããå Žåã«æå¹ã«ãªããŸãã ã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€ããŒãã«èšå®ãããå Žåããã®ãã§ãã¯ã¯ãã®ã¡ã¢ãªãŒã»ããŒã«ã§ç¡å¹ã«ãªããŸãã ããã©ã«ãå€ã¯ãŒãã§ãã Javaä»®æ³ãã·ã³ã¯ãã¬ããŒãžã»ã³ã¬ã¯ã·ã§ã³æã«ã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€ãã§ãã¯ãå®è¡ããŸãã
äžéšã®ã¬ããŒãžã»ã³ã¬ã¯ããããã¡ã¢ãªãŒã»ããŒã«ã§ã¯ãã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€ããµããŒãããªãããã«éžæã§ããŸãã ããšãã°ãã¡ã¢ãªãŒã»ããŒã«ã¯é£ç¶çãªäžŠè¡ã¬ããŒãžã»ã³ã¬ã¯ã¿ã ãã«ãã管çãããŸãã 䜿çšããªããªããžã§ã¯ãã䞊è¡ã¬ããŒãžã»ã³ã¬ã¯ã¿ãåæã«åçããŠããéã«ãäœããã®ã¹ã¬ããã«ããããã®ã¡ã¢ãªãŒã»ããŒã«ã«ãªããžã§ã¯ããå²ãåœãŠãããšãã§ããŸãã ååã«å®çŸ©ãããã¬ããŒãžã»ã³ã¬ã¯ã·ã§ã³æé(ã¡ã¢ãªãŒäœ¿çšéããã§ãã¯ããã®ã«æé©ãªæé)ããªãããããã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€ããµããŒãããŠã¯ãããŸããã
ã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€ã¯ãJavaä»®æ³ãã·ã³ãã¡ã¢ãªãŒç©ºéã®åçã«æåãå°œãããããšãã¡ã¢ãªãŒäœ¿çšéãç£èŠããããèšèšãããŠããŸãã 䜿çšéãããå€ã§èª¬æããããŒãªã³ã°ããã³ãããå€éç¥ã¡ã«ããºã ã«ãããåæ§ã®æ¹æ³ã§ã³ã¬ã¯ã·ã§ã³äœ¿çšéãç£èŠã§ããŸãã
ManagementFactory.getPlatformMXBeans(Class), JMX仿§, MXBeanã«ã¢ã¯ã»ã¹ããæ¹æ³| 修食åãšå | ã¡ãœãã | 説æ |
|---|---|---|
MemoryUsage |
getCollectionUsage() |
Javaä»®æ³ãã·ã³ããã®ã¡ã¢ãªãŒã»ããŒã«ã§äœ¿çšãããªããªããžã§ã¯ãã®ãªãµã€ã¯ã«ã«æåŸã«æåãå°œãããããšã®ã¡ã¢ãªãŒäœ¿çšéãè¿ããŸãã
|
long |
getCollectionUsageThreshold() |
ãã®ã¡ã¢ãªãŒã»ããŒã«ã®ã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€(ãã€ãåäœ)ãè¿ããŸãã
|
long |
getCollectionUsageThresholdCount() |
ã¡ã¢ãªãŒäœ¿çšéãã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€ãè¶
ããããšãJavaä»®æ³ãã·ã³ãæ€åºããåæ°ãè¿ããŸãã
|
String[] |
getMemoryManagerNames() |
ãã®ã¡ã¢ãªãŒã»ããŒã«ã管çããŠããã¡ã¢ãªãŒã»ãããŒãžã£ã®ååãè¿ããŸãã
|
String |
getName() |
ãã®ã¡ã¢ãªãŒã»ããŒã«ã衚ãååãè¿ããŸãã
|
MemoryUsage |
getPeakUsage() |
Javaä»®æ³ãã·ã³ãèµ·åãããŠããããŸãã¯ããŒã¯ããªã»ãããããŠããã®ããã®ã¡ã¢ãªãŒã»ããŒã«ã®ããŒã¯ã»ã¡ã¢ãªãŒäœ¿çšéãè¿ããŸãã
|
MemoryType |
getType() |
ãã®ã¡ã¢ãªãŒã»ããŒã«ã®åãè¿ããŸãã
|
MemoryUsage |
getUsage() |
ãã®ã¡ã¢ãªãŒã»ããŒã«ã®ã¡ã¢ãªãŒäœ¿çšéã®è©äŸ¡å€ãè¿ããŸãã
|
long |
getUsageThreshold() |
ãã®ã¡ã¢ãªãŒã»ããŒã«ã®äœ¿çšéãããå€ããã€ãåäœã§è¿ããŸãã
|
long |
getUsageThresholdCount() |
ã¡ã¢ãªãŒäœ¿çšéããããå€ãè¶
ããåæ°ãè¿ããŸãã
|
boolean |
isCollectionUsageThresholdExceeded() |
Javaä»®æ³ãã·ã³ãæåãå°œãããæåŸã®ã³ã¬ã¯ã·ã§ã³ã®ããšã«ããã®ã¡ã¢ãªãŒã»ããŒã«ã®ã¡ã¢ãªãŒäœ¿çšéãã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€ã«éããããŸãã¯è¶
ãããããã¹ãããŸãã
|
boolean |
isCollectionUsageThresholdSupported() |
ãã®ã¡ã¢ãªãŒã»ããŒã«ãã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€ããµããŒããããã©ããããã¹ãããŸãã
|
boolean |
isUsageThresholdExceeded() |
ãã®ã¡ã¢ãªãŒã»ããŒã«ã®ã¡ã¢ãªãŒäœ¿çšéã䜿çšéãããå€ã«éããããŸãã¯è¶
ãããã©ããããã¹ãããŸãã
|
boolean |
isUsageThresholdSupported() |
ãã®ã¡ã¢ãªãŒã»ããŒã«ã䜿çšéãããå€ããµããŒããããã©ããããã¹ãããŸãã
|
boolean |
isValid() |
ãã®ã¡ã¢ãªãŒã»ããŒã«ãJavaä»®æ³ãã·ã³ã§æå¹ãã©ããããã¹ãããŸãã
|
void |
resetPeakUsage() |
ãã®ã¡ã¢ãªãŒã»ããŒã«ã®ããŒã¯ã»ã¡ã¢ãªãŒäœ¿çšéçµ±èšãçŸåšã®ã¡ã¢ãªãŒäœ¿çšéã«ãªã»ããããŸãã
|
void |
setCollectionUsageThreshold(long threshold) |
ãã®ã¡ã¢ãªãŒã»ããŒã«ã®ã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€ãæå®ãããthresholdå€ã«èšå®ããŸãã
|
void |
setUsageThreshold(long threshold) |
ãã®ã¡ã¢ãªãŒã»ããŒã«ã䜿çšéãããå€ããµããŒãããŠããå Žåããã®ã¡ã¢ãªãŒã»ããŒã«ã®ãããå€ãæå®ãããthresholdå€ã«èšå®ããŸãã
|
getObjectNameString getName()
MemoryType getType()
MBeanServerã¢ã¯ã»ã¹:
MemoryTypeã®ãããåã¯Stringãå€ã¯MemoryTypeã®ååã§ãã
MemoryUsage getUsage()
ãã®ã¡ãœããã¯ããã®ã¡ã¢ãªãŒã»ããŒã«ã®çŸåšã®ã¡ã¢ãªãŒäœ¿çšéã®ãã¹ãã»ãšãã©ãŒãã®è©äŸ¡ãè¡ãããJavaä»®æ³ãã·ã³ã«èŠæ±ããŸãã äžéšã®ã¡ã¢ãªãŒã»ããŒã«ã§ã¯ããã®ã¡ãœããã¯è©äŸ¡å€ã®å€å®ã«ããããã®èšç®ãå¿ èŠãšããè² è·ã®å€§ããæäœã«ãªãå¯èœæ§ããããŸãã å®è£ ã¯ã該åœããç¶æ³ãããã¥ã¡ã³ãåããå¿ èŠããããŸãã
ãã®ã¡ãœããã¯ãã·ã¹ãã ã»ã¡ã¢ãªãŒäœ¿çšéã®ç£èŠãšã¡ã¢ãªãŒäžè¶³æ¡ä»¶ã®æ€åºã«äœ¿çšããããã«èšèšãããŠããŸãã
MBeanServerã¢ã¯ã»ã¹:
MemoryUsageã®ãããåã¯ãMemoryUsageã§æå®ããã屿§ãå«ãCompositeDataã§ãã
MemoryUsageãªããžã§ã¯ãããã®ããŒã«ãç¡å¹ãªå Žåã¯nullãMemoryUsage getPeakUsage()
MBeanServerã¢ã¯ã»ã¹:
MemoryUsageã®ãããåã¯ãMemoryUsageã§æå®ããã屿§ãå«ãCompositeDataã§ãã
MemoryUsageãªããžã§ã¯ãããã®ããŒã«ãç¡å¹ãªå Žåã¯nullãvoid resetPeakUsage()
SecurityException - ã»ãã¥ãªãã£ã»ãããŒãžã£ãååšããå Žåã§ãåŒåºãå
ãManagementPermission("control")ãæããªãå Žåãboolean isValid()
String[] getMemoryManagerNames()
long getUsageThreshold()
setUsageThresholdã¡ãœããã䜿ã£ãŠå€æŽã§ããŸãã UnsupportedOperationException - ãã®ã¡ã¢ãªãŒã»ããŒã«ã䜿çšéãããå€ããµããŒãããªãå ŽåãisUsageThresholdSupported()void setUsageThreshold(long threshold)
threshold - ãã€ãåäœã®æ°ãããããå€ã è² ã§ãªãæ°å€ã IllegalArgumentException - thresholdãè² ã®å ŽåããŸãã¯ãã®ã¡ã¢ãªãŒã»ããŒã«ã®äœ¿çšå¯èœã¡ã¢ãªãŒéã®æå€§å€(å®çŸ©ãããŠããå Žå)ãè¶
ããå ŽåãUnsupportedOperationException - ãã®ã¡ã¢ãªãŒã»ããŒã«ã䜿çšéãããå€ããµããŒãããªãå ŽåãSecurityException - ã»ãã¥ãªãã£ã»ãããŒãžã£ãååšããå Žåã§ãåŒåºãå
ãManagementPermission("control")ãæããªãå ŽåãisUsageThresholdSupported(), 䜿çšéãããå€boolean isUsageThresholdExceeded()
UnsupportedOperationException - ãã®ã¡ã¢ãªãŒã»ããŒã«ã䜿çšéãããå€ããµããŒãããªãå Žåãlong getUsageThresholdCount()
UnsupportedOperationException - ãã®ã¡ã¢ãªãŒã»ããŒã«ã䜿çšéãããå€ããµããŒãããªãå Žåãboolean isUsageThresholdSupported()
long getCollectionUsageThreshold()
setCollectionUsageThresholdã¡ãœããã䜿ã£ãŠå€æŽã§ããŸãã UnsupportedOperationException - ãã®ã¡ã¢ãªãŒã»ããŒã«ãã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€ããµããŒãããªãå ŽåãisCollectionUsageThresholdSupported()void setCollectionUsageThreshold(long threshold)
ãããå€ãæ£ã®å€ã«èšå®ããããšããã®ã¡ã¢ãªãŒã»ããŒã«ã§ã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€ã®è¶ éãã§ãã¯ãæå¹ã«ãªããŸãã ãããå€ããŒãã«èšå®ããããšããã®ã¡ã¢ãªãŒã»ããŒã«ã§ã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€ã®è¶ éãã§ãã¯ãç¡å¹ã«ãªããŸãã
threshold - æ°ããã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€(ãã€ãåäœ)ã è² ã§ãªãæ°å€ã IllegalArgumentException - thresholdãè² ã®å ŽåããŸãã¯ãã®ã¡ã¢ãªãŒã»ããŒã«ã®äœ¿çšå¯èœã¡ã¢ãªãŒéã®æå€§å€(å®çŸ©ãããŠããå Žå)ãè¶
ããå ŽåãUnsupportedOperationException - ãã®ã¡ã¢ãªãŒã»ããŒã«ãã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€ããµããŒãããªãå ŽåãSecurityException - ã»ãã¥ãªãã£ã»ãããŒãžã£ãååšããå Žåã§ãåŒåºãå
ãManagementPermission("control")ãæããªãå ŽåãisCollectionUsageThresholdSupported(), ã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€boolean isCollectionUsageThresholdExceeded()
UnsupportedOperationException - ãã®ã¡ã¢ãªãŒã»ããŒã«ã䜿çšéãããå€ããµããŒãããªãå Žåãlong getCollectionUsageThresholdCount()
UnsupportedOperationException - ãã®ã¡ã¢ãªãŒã»ããŒã«ãã³ã¬ã¯ã·ã§ã³äœ¿çšéãããå€ããµããŒãããªãå ŽåãisCollectionUsageThresholdSupported()MemoryUsage getCollectionUsage()
MBeanServerã¢ã¯ã»ã¹:
MemoryUsageã®ãããåã¯ãMemoryUsageã§æå®ããã屿§ãå«ãCompositeDataã§ãã
MemoryUsageããã®ã¡ãœããããµããŒããããŠããªãå Žåã¯nullãboolean isCollectionUsageThresholdSupported()
ãã°ãŸãã¯æ©èœãéä¿¡
詳现ãªAPIãªãã¡ã¬ã³ã¹ããã³éçºè
ããã¥ã¡ã³ãã«ã€ããŠã¯ãJava SEã®ããã¥ã¡ã³ããåç
§ããŠãã ããã ãã®ããã¥ã¡ã³ãã«ã¯ãæŠå¿µçãªæŠèŠãçšèªã®å®çŸ©ãåé¿æ¹æ³ãæå¹ãªã³ãŒãäŸãªã©ã®ãéçºè
ã察象ã«ãããã詳现ãªèª¬æãå«ãŸããŠããŸãã
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyãåç
§ããŠãã ããã