|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀÌÀü Ŭ·¡½º Â÷ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
°³¿ä: NESTED | Çʵå | »ý¼ºÀÚ | ¸Þ¼µå | »ó¼¼: Çʵå | »ý¼ºÀÚ | ¸Þ¼µå |
public interface MemoryPoolMXBean
¸Þ¸ð¸®ÇÁ¸£ÀÇ °ü¸® ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù. ¸Þ¸ð¸®ÇÁ¸£´Â Java °¡»ó ¸Ó½Å¿¡ ÀÇÇØ °ü¸®µÇ´Â ¸Þ¸ð¸® ¸®¼Ò½º¸¦ ³ªÅ¸³», 1°³
ÀÌ»ó MS-DOS¸Þ¸ð¸® °ü¸® ÇÁ·Î±×·¥
¿¡ ÀÇÇØ °ü¸®µË´Ï´Ù.
Java °¡»ó ¸Ó½ÅÀº ÀÌ ÀÎÅÍÆäÀ̽ºÀÇ ±¸Çö Ŭ·¡½ºÀÇ 1°³
ÀÌ»óÀÇ ÀνºÅϽº¸¦ °¡Áý´Ï´Ù. ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϰí ÀÖ´Â ÀνºÅϽº´Â ManagementFactory.getMemoryPoolMXBeans()
¸Þ¼µå¸¦ È£ÃâÇØ ÃëµæÇÒ ¼ö ÀÖ´Ù, ȤÀº platform MBeanServer
¸Þ¼µå·ÎºÎÅÍ ÃëµæÇÒ ¼ö ÀÖ´Â MXBean ÀÔ´Ï´Ù.
MBeanServer ³»¿¡¼ ¸Þ¸ð¸®ÇÁ¸£ÀÇ MXBean¸¦ ÀÏÀÇ¿¡ ½Äº°Çϱâ À§ÇÑ ObjectName´Â ÀÌÇÏ´ë·ÎÀÔ´Ï´Ù.
java.lang:type=MemoryPool
, name=pool's name
Java °¡»ó ¸Ó½ÅÀº °´Ã¼ ÇÒ´ç¿ëÀÇ heap¸¦ °¡Á®, ¸Þ¼µå ¿µ¿ª°ú Java °¡»ó ¸Ó½ÅÀÇ ½ÇÇà¿ëÀÇ heap ÀÌ¿ÜÀÇ ¸Þ¸ð¸®µµ º¸°ü À¯ÁöÇϰí ÀÖ½À´Ï´Ù. Java °¡»ó ¸Ó½ÅÀº 1°³ ÀÌ»óÀÇ ¸Þ¸ð¸®ÇÁ¸£¸¦ º¸À¯ÇÒ ¼ö ÀÖ½À´Ï´Ù. °¢ ¸Þ¸ð¸®ÇÁ¸£´Â ¾Æ·¡ÀÇ ÇüÅÂÀÇ ¾î´À ÂÊÀΰ¡ÀÇ ¸Þ¸ð¸® ¿µ¿ªÀ» ³ªÅ¸³À´Ï´Ù.
getUsage()
¸Þ¼µå´Â ¸Þ¸ð¸®ÇÁ¸£ÀÇ ÇöÀçÀÇ ´ë·«ÀÇ »ç¿ë·®À» Á¦°øÇÕ´Ï´Ù. °¡ºñÁö Ä÷ºÆ®µÈ ¸Þ¸ð¸®ÇÁ¸£ÀÇ °æ¿ì, »ç¿ëµÈ ¸Þ¸ð¸®ÀÇ ¾ç¿¡´Â ¡¸µµ´Þ °¡´ÉÇÑ¡¹°´Ã¼¿Í ¡¸µµ´Þ ºÒ°¡´ÉÇÑ¡¹°´Ã¼ÀÇ ¾çÂÊ ¸ðµÎ¸¦ Æ÷ÇÔÇÑ, ¸Þ¸ð¸®ÇÁ¸£ÀÇ ¸ðµç °´Ã¼°¡ Â÷ÁöÇÏ´Â ¸Þ¸ð¸®°¡ Æ÷ÇԵ˴ϴÙ.
ÀϹÝÀûÀ¸·Î ÀÌ ¸Þ¼µå´Â ºÎÇÏÀÇ ÀûÀº Á¶ÀÛÀ¸·Î ´ë·«ÀÇ ¸Þ¸ð¸® »ç¿ë·®À» ÃëµæÇÕ´Ï´Ù. °´Ã¼°¡ ¿¬¼ÓÇØ ÆÑ µÇÁö ¾Ê´Â °æ¿ì µî, ÀϺÎÀÇ ¸Þ¸ð¸®ÇÁ¸£¿¡¼´Â ÀÌ ¸Þ¼µå´Â ÇöÀçÀÇ ¸Þ¸ð¸® »ç¿ë·®À» ÆÇÁ¤Çϴµ¥ ¾ó¸¶Àΰ¡ÀÇ °è»êÀ» ÇÊ¿ä·Î ÇÏ´Â ºÎÇÏÀÇ Å« Á¶ÀÛÀÌ µÉ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ±¸Çö¿¡¼´Â ÀÌ·¯ÇÑ ÄÉÀ̽º¸¦ ¹®¼ÈÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
getPeakUsage()
¸Þ¼µå¿¡ ÀÇÇØ µ¹·ÁÁÖ°íÁ®resetPeakUsage()
¸Þ¼µå¸¦ È£ÃâÇØ ¸®¼Â µË´Ï´Ù.
setUsageThreshold
¸Þ¼µå¸¦ »ç¿ëÇØ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.ÀÇÇØ ±ÍÀǰªÀÌ Á¤ÀÇ °ªÀ¸·Î ¼³Á¤µÇ¸é, ÀÌ ¸Þ¸ð¸®ÇÁ¸£·Î »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ÀÇ Ãʰú üũ°¡ À¯È¿ÇÏ°Ô µË´Ï´Ù. »ç¿ë·®ÀÇÇØ ±ÍÀǰªÀÌ Á¦·Î·Î ¼³Á¤µÇ¸é, ÀÌ ¸Þ¸ð¸®ÇÁ¸£·Î »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ÀÇ Ãʰú üũ°¡ ¹«È¿°¡ µË´Ï´Ù. MemoryPoolMBean#isUsageThresholdSupported
¸Þ¼µå¸¦ »ç¿ëÇØ, ÀÌ ±â´ÉÀÌ Áö¿ø
µÇ°í ÀÖ´ÂÁö¸¦ ÆÇÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Java °¡»ó ¸Ó½ÅÀº ÃÖÀûÀÎ ½Ã±â (ÀϹÝÀûÀ¸·Î °¡ºñÁö Ä÷º¼Ç½Ã)¿¡
»ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ Ãʰú üũ¸¦ ¸Þ¸ð¸®ÇÁ¸£ ¸¶´Ù ½ÇÇàÇÕ´Ï´Ù. °¢ ¸Þ¸ð¸®ÇÁ¸£´Â ¸Þ¸ð¸®ÇÁ¸£ »ç¿ë·®ÀÌÀÇÇØ ±ÍÀÇÄ¡¸¦ ÃʰúÇϰí ÀÖ´Â °ÍÀ» Java °¡»ó ¸Ó½ÅÀÌ °ËÃâÇÒ ¶§¸¶´Ù Áõ°¡ÇÏ´Â usage threshold count
¸¦
º¸°ü À¯ÁöÇϰí ÀÖ½À´Ï´Ù.
ÀÌ °ü¸® °¡´ÉÇÑ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ ¼Ó¼ºÀº ¸Þ¸ð¸® »ç¿ë·®ÀÇ Áõ°¡ °æÇâÀ» ³·Àº ¿À¹öÇìµå·Î °¨½ÃÇϵµ·Ï ¼³°èµÇ°í ÀÖ½À´Ï´Ù. »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡´Â ÀϺÎÀÇ ¸Þ¸ð¸®ÇÁ¸£¿¡ ÀûÇÕÇÏÁö ¾Ê´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ¸¹Àº Java °¡»ó ¸Ó½Å ±¸ÇöÀ¸·Î »ç¿ëµÇ´Â °øÅëÀÇ °¡ºñÁö Ä÷ºÅÍÀÎ ¼¼´ëº° °¡ºñÁö Ä÷ºÅÍ´Â ¿¬·ÉÀ¸·Î °´Ã¼¸¦ ±¸ºÐÇØ, 2 ¼¼´ë ÀÌ»óÀ» °ü¸®ÇÕ´Ï´Ù. ´ëºÎºÐÀÇ °´Ã¼´Â ¡¸°¡Àå ÀþÀº ¼¼´ë¡¹(ÀþÀº ¸Þ¸ð¸®ÇÁ¸£)¿¡ ÇÒ´çÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀþÀº ¸Þ¸ð¸®ÇÁ¸£´Â °¡µæ µÇµµ·Ï ¼³°èµÇ°í ÀÖ½À´Ï´Ù. ¶Ç, °¡ºñÁö Ä÷º¼Ç½Ã¿¡ ´ëºÎºÐÀÇ °æ¿ì µµ´Þ ºÒ°¡´ÉÇÑ ´Ü±â°£ °¡µ¿ÀÇ °´Ã¼°¡ ¼ö¿ëµÇ±â ¶§¹®¿¡ ÀþÀº ¸Þ¸ð¸®ÇÁ¸£¸¦ ¼öÁýÇϸé, ¸Þ¸ð¸® °ø°£ÀÇ ´ëºÎºÐÀÌ ÇØ¹æµË´Ï´Ù. ÀÌ ÄÉÀ̽º¿¡¼´Â ÀþÀº ¸Þ¸ð¸®ÇÁ¸£°¡ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø ÇÏÁö ¾Ê´Â ÆíÀÌ ÀûÀýÇÕ´Ï´Ù. ´õÇØ, »ç¿ë·®ÀÇÀÇÇØ ±ÍÀÇÄ¡¿Í ºñ±³ÇÒ ¶§ÀÇ ¿À¹öÇìµå´Â °´Ã¼ ÇÒ´çÀÇ ÄÚ½ºÆ®º¸´Ù ºñ½Î°Ô µé¹Ç·Î 1°³ÀÇ ¸Þ¸ð¸®ÇÁ¸£¿¡ÀÇ °´Ã¼ÀÇ ÇÒ´çÀÇ ÄÚ½ºÆ®°¡ ±ØÈ÷ ³·Àº °æ¿ì (¿¹, ¿øÀÚ Æ÷ÀÎÅÍ ±³È¯ µî), Java °¡»ó ¸Ó½ÅÀº ¸Þ¸ð¸®ÇÁ¸£ÀÇ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø ÇÏÁö ¾Ê½À´Ï´Ù.
½Ã½ºÅÛÀÇ ¸Þ¸ð¸® »ç¿ë·®Àº, Æú¸µÀ̳ªÇØ ±ÍÀÇÄ¡ ÅëÁöÀÇ ¸ÞÄ«´ÏÁòÀ» »ç¿ëÇØ °¨½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù.
¾îÇø®ÄÉÀ̼ǿ¡¼´Â ¸ðµç ¸Þ¸ð¸®ÇÁ¸£¿¡ ´ëÇØ¼ getUsage()
¸Þ¼µå¸¦ È£ÃâÇÏ´ÂÁö, »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿øÇÏ´Â ¸Þ¸ð¸®ÇÁ¸£¿¡ ´ëÇØ¼ isUsageThresholdExceeded()
¸Þ¼µå¸¦ È£ÃâÇØ ¿¬¼ÓÀûÀ¸·Î ¾îÇø®ÄÉÀ̼ÇÀÇ ¸Þ¸ð¸® »ç¿ë·®À» °¨½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌÇϴ ŽºÅ©ÀÇ ¹èºÐ°ú 󸮿¡ ƯÈÇÑ thread¸¦ °¡Áö´Â »ùÇà ÄÚµåÀÇ ¿¹ÀÔ´Ï´Ù. ÀÌ »ùÇà ÄÚµå´Â ¾î´À ±¸°£¿¡¼µµ ¸Þ¸ð¸® »ç¿ë·®¿¡ ±Ù°ÅÇØ »õ·Î¿î ŽºÅ©¸¦ ¹Þ¾Æµé¿© ó¸®ÇÒÁö ¾î¶³Áö¸¦ ÆÇÁ¤ÇÕ´Ï´Ù. ¸Þ¸ð¸® »ç¿ë·®ÀÌ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ ³Ñ¾úÀ» °æ¿ì, ÀÌ »ùÇà ÄÚµå´Â ¸ðµç ¹Ìó¸®ÀÇ Å½ºÅ©¸¦ ´Ù¸¥ °¡»ó ¸Ó½Å¿¡ Àç¹èºÐÇØ, ¸Þ¸ð¸® »ç¿ë·®ÀÌ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ ÀÌÇÏ¿¡ µ¹¾Æ¿Ã ¶§±îÁö »õ·Î¿î ŽºÅ©ÀÇ ¼ö¶ôÀ» Á¤ÁöÇÕ´Ï´Ù.
// 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°³ÀÇ getUsageThresholdCount()
Æú°£¿¡ ÀÇÇØ ±ÍÀÇÄ¡ ÀÌÇÏÀÏÁö ¾î¶³Áö¸¦ ÆÇÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌÇÏ´Â ¸Þ¸ð¸®ÇÁ¸£°¡ ¸Þ¸ð¸® ºÎÁ·ÀÇ °æ¿ì¿¡ ¾î¶°ÇÑ ¾×¼ÇÀ» ½ÇÇàÇØ, ¾×¼Ç ó¸®Áß¿¡ ¸Þ¸ð¸® »ç¿ë·®ÀÇ º¯È¸¦ ¹«½ÃÇÏ´Â »ùÇà ÄÚµåÀÔ´Ï´Ù.
// 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¸¦ Æ®¸®°Å ÇØ»ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ Ãʰú ÅëÁö
¸¦ ¹ßÇàÇÕ´Ï´Ù. »ç¿ë·®ÀÌÀÇÇØ ±ÍÀÇÄ¡ ¹Ì¸¸ÀÌ µÇ¾î, ´Ù½Ã ÃʰúÇÒ ¶§±îÁö, ´Ù¸¥ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ Ãʰú ÅëÁö´Â »ý¼ºµÇÁö ¾Ê½À´Ï´Ù.
¾Æ·¡ÀÇ »ùÇà ÄÚµå´Â Àü¼úÀÇ ÃÖÃÊÀÇ »ùÇà ÄÚµå¿Í °°Àº ³í¸®¸¦ ±¸ÇöÇϰí ÀÖ½À´Ï´Ù¸¸, Æú¸µÀº ¾Æ´Ï°í, »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ ÅëÁö ¸ÞÄ«´ÏÁòÀ» »ç¿ëÇØ ¸Þ¸ð¸® ºÎÁ· Á¶°ÇÀ» °ËÃâÇϰí ÀÖ½À´Ï´Ù. ÀÌ »ùÇà Äڵ忡¼´Â ÅëÁöÀÇ ¼öÃë¿¡ÀÇÇØ ÅëÁö ¸®½º³Ê´Â ¹Ìó¸® Å½ºÅ©ÀÇ Àç¹èºÐ, ŽºÅ©ÀÇ ¼öÃëÀÇ Á¤Áö, ȤÀº ¹Þ¾Æ ŽºÅ©ÀÇ Àç°³µîÀÇ ½ÇÁ¦ÀÇ ¾×¼ÇÀ» ½ÇÇàÇϵµ·Ï ´Ù¸¥ thread¿¡ ÅëÁöÇÕ´Ï´Ù. handleNotification ¸Þ¼µå´Â ±ØÈ÷ ¼Ò·®ÀÇ ÀÛ¾÷À» ½ÇÇàÇØ Áö¿¬¾øÀÌ °ªÀ» µ¹·ÁÁÖ°í, ÀÌÈÄÀÇ ÅëÁöÀÇ ¹èÆ÷·Î Áö¿¬ÀÌ »ý±âÁö ¾Êµµ·Ï ¼³°èµÉ Çʿ䰡 ÀÖ½À´Ï´Ù. ½Ã°£ÀÌ °É¸®´Â ¾×¼ÇÀº ´Ù¸¥ thread¿¡ ÀÇÇØ ½ÇÇàµÉ Çʿ䰡 ÀÖ½À´Ï´Ù. ÅëÁö ¸®½º³Ê´Â º¹¼öÀÇ thread¿¡ ÀÇÇØ ºÒ·Á °¥ ¼ö°¡ ÀÖ½À´Ï´Ù. µû¶ó¼, ¸®½º³Ê°¡ ½ÇÇàÇϴ ŽºÅ©´Â ÀûÀýÈ÷ µ¿±âÈ µÉ Çʿ䰡 ÀÖ½À´Ï´Ù.
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()
¸Þ¼µå¿¡ ÀÇÇØ ¸®ÅÏµÈ ÇöÀçÀÇ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ Ä«¿îÆ®¿Í ºñ±³ÇØ, ÀÌ·¯ÇÑ »óȲÀÌ ¹ß»ýÇß´ÂÁö ¾î¶°Çß´ÂÁö¸¦ ÆÇÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ Ãʰú ÅëÁö
°¡ ¹ßÇàµÇµµ·Ï, Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ »ç¿ëÇØ, ÀÌ ÀϺÎÀÇ ¹ÙÀÌÆ®¼ö¿¡ °ªÀ» ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´õÇØ, Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ Ä«¿îÆ®
°¡ ´Ã·ÁÁý´Ï´Ù.
isCollectionUsageThresholdSupported()
¸Þ¼µå¸¦ »ç¿ëÇØ, ÀÌ ±â´ÉÀÌ Áö¿ø
µÇ°í ÀÖ´ÂÁö¸¦ ÆÇÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Java °¡»ó ¸Ó½ÅÀº Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ üũ¸¦ ¸Þ¸ð¸®ÇÁ¸£ ¸¶´Ù ½ÇÇàÇÕ´Ï´Ù. ÀÌ Ã¼Å©´Â Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀǰªÀÌ Á¤ÀÇ °ªÀ¸·Î ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì¿¡ À¯È¿ÇÏ°Ô µË´Ï´Ù. Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀǰªÀÌ Á¦·Î·Î ¼³Á¤µÇ¾úÀ» °æ¿ì, ÀÌ Ã¼Å©´Â ÀÌ ¸Þ¸ð¸®ÇÁ¸£·Î ¹«È¿°¡ µË´Ï´Ù. ±âº»°ª´Â Á¦·ÎÀÔ´Ï´Ù. Java °¡»ó ¸Ó½ÅÀº °¡ºñÁö Ä÷º¼Ç½Ã¿¡ Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ üũ¸¦ ½ÇÇàÇÕ´Ï´Ù.
ÀϺÎÀÇ °¡ºñÁö Ä÷ºÆ®µÈ ¸Þ¸ð¸®ÇÁ¸£¿¡¼´Â Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø ÇÏÁö ¾Ê°Ô ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ¸Þ¸ð¸®ÇÁ¸£´Â ¿¬¼ÓÀûÀÎ º´Çà °¡ºñÁö Ä÷ºÅÍÀÎ ¸¸Å º¸´Ù °ü¸®µË´Ï´Ù. »ç¿ëÇÏÁö ¾Ê´Â °´Ã¼¸¦ º´Çà °¡ºñÁö Ä÷ºÅͰ¡ µ¿½Ã¿¡ Àç»ýÇϰí ÀÖ´Â µ¿¾È¿¡ ¾î¶°ÇÑ thread¿¡ÀÇÇØ ÀÌ ¸Þ¸ð¸®ÇÁ¸£¿¡ °´Ã¼¸¦ ÇÒ´çÇÒ ¼ö ÀÖ½À´Ï´Ù . ÃæºÐÈ÷ Á¤ÀÇµÈ °¡ºñÁö Ä÷º¼Ç ½Ã°£ (¸Þ¸ð¸® »ç¿ë·®À» üũÇϴµ¥ ÃÖÀûÀÎ ½Ã°£)ÀÌ ¾ø´Â ÇÑ, Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø ÇØ¼´Â ¾ÈµË´Ï´Ù.
Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡´Â Java °¡»ó ¸Ó½ÅÀÌ ¸Þ¸ð¸® °ø°£ÀÇ Àç»ý¿¡ ÃÖ¼±À» ´ÙÇÑµÚ ¸Þ¸ð¸® »ç¿ë·®À» °¨½ÃÇϵµ·Ï ¼³°èµÇ°í ÀÖ½À´Ï´Ù. »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡·Î ¼³¸íÇÑ Æú¸µ ¹×ÀÇÇØ ±ÍÀÇÄ¡ ÅëÁö ¸ÞÄ«´ÏÁò¿¡ÀÇÇØ °°Àº ¹æ¹ýÀ¸·Î Ä÷º¼Ç »ç¿ë·®À» °¨½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù.
¸Þ¼µå °³¿ä | |
---|---|
MemoryUsage |
getCollectionUsage ()
Java °¡»ó ¸Ó½ÅÀÌ ÀÌ ¸Þ¸ð¸®ÇÁ¸£·Î »ç¿ëµÇÁö ¾Ê´Â °´Ã¼ÀÇ ¸®»çÀÌŬ¿¡ ¸¶Áö¸·¿¡ ÃÖ¼±À» ´ÙÇÑ µÚÀÇ ¸Þ¸ð¸® »ç¿ë·®À» ¸®ÅÏÇÕ´Ï´Ù. |
long |
getCollectionUsageThreshold ()
ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ (¹ÙÀÌÆ® ´ÜÀ§)¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
long |
getCollectionUsageThresholdCount ()
¸Þ¸ð¸® »ç¿ë·®ÀÌ Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ ³ÑÀº °ÍÀ» Java °¡»ó ¸Ó½ÅÀÌ °ËÃâÇÑ È¸¼ö¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
String [] |
getMemoryManagerNames ()
ÀÌ ¸Þ¸ð¸®ÇÁ¸£¸¦ °ü¸®Çϰí ÀÖ´Â MS-DOS¸Þ¸ð¸® °ü¸® ÇÁ·Î±×·¥ À̸§À» ¸®ÅÏÇÕ´Ï´Ù. |
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 threhsold)
ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀǰªÀÌ ÁöÁ¤µÈ threshold Ä¡·Î ¼³Á¤ÇÕ´Ï´Ù. |
void |
setUsageThreshold (long threshold)
ÀÌ ¸Þ¸ð¸®ÇÁ¸£°¡ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø Çϰí ÀÖ´Â °æ¿ì, ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇÀÇÇØ ±ÍÀǰªÀÌ ÁöÁ¤µÈ threshold Ä¡·Î ¼³Á¤ÇÕ´Ï´Ù. |
¸Þ¼µåÀÇ »ó¼¼ |
---|
String getName()
MemoryType getType()
MBeanServer ¾×¼¼½º:
MemoryType
¸ÊÇüÀº String, °ªÀº MemoryType
À̸§ÀÔ´Ï´Ù.
MemoryUsage getUsage()
ÀÌ ¸Þ¼µå´Â ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ ÇöÀçÀÇ ¸Þ¸ð¸® »ç¿ë·®ÀÇ best effortÀÇ Æò°¡¸¦ ½Ç½ÃÇϵµ·Ï Java °¡»ó ¸Ó½Å¿¡ ¿ä±¸ÇÕ´Ï´Ù. ÀϺÎÀÇ ¸Þ¸ð¸®ÇÁ¸£¿¡¼´Â ÀÌ ¸Þ¼µå´Â Æò°¡Ä¡ÀÇ ÆÇÁ¤¿¡ ¾ó¸¶Àΰ¡ÀÇ °è»êÀ» ÇÊ¿ä·Î ÇÏ´Â ºÎÇÏÀÇ Å« Á¶ÀÛÀÌ µÉ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ±¸Çö¿¡¼´Â ÀÌ·¯ÇÑ ÄÉÀ̽º¸¦ ¹®¼ÈÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
ÀÌ ¸Þ¼µå´Â ½Ã½ºÅ۸޸𸮠»ç¿ë·®ÀÇ °¨½Ã¿Í ¸Þ¸ð¸® ºÎÁ· Á¶°ÇÀÇ °ËÃâ¿¡ »ç¿ëÇϱâ À§Çؼ ¼³°èµÇ°í ÀÖ½À´Ï´Ù.
MBeanServer ¾×¼¼½º:
MemoryUsage
¸ÊÇüÀº, MemoryUsage
·Î ÁöÁ¤µÈ ¼Ó¼ºÀ» °¡Áö´Â CompositeData ÀÔ´Ï´Ù.
MemoryUsage
°´Ã¼. ÀÌ Ç®ÀÌ ¹«È¿ÀÎ °æ¿ì´Â nullMemoryUsage getPeakUsage()
MBeanServer ¾×¼¼½º:
MemoryUsage
¸ÊÇüÀº, MemoryUsage
·Î ÁöÁ¤µÈ ¼Ó¼ºÀ» °¡Áö´Â CompositeData ÀÔ´Ï´Ù.
MemoryUsage
°´Ã¼. ÀÌ Ç®ÀÌ ¹«È¿ÀÎ °æ¿ì´Â nullvoid 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()
,
Usage threshold boolean isUsageThresholdExceeded()
UnsupportedOperationException
- ÀÌ ¸Þ¸ð¸®ÇÁ¸£°¡ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø
ÇÏÁö ¾Ê´Â °æ¿ìlong getUsageThresholdCount()
UnsupportedOperationException
- ÀÌ ¸Þ¸ð¸®ÇÁ¸£°¡ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø
ÇÏÁö ¾Ê´Â °æ¿ìboolean isUsageThresholdSupported()
long getCollectionUsageThreshold()
setCollectionUsageThreshold
¸Þ¼µå¸¦ »ç¿ëÇØ º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.
UnsupportedOperationException
- ÀÌ ¸Þ¸ð¸®ÇÁ¸£°¡ Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø
ÇÏÁö ¾Ê´Â °æ¿ìisCollectionUsageThresholdSupported()
void setCollectionUsageThreshold(long threhsold)
ÀÇÇØ ±ÍÀǰªÀÌ Á¤ÀÇ °ªÀ¸·Î ¼³Á¤µÇ¸é, ÀÌ ¸Þ¸ð¸®ÇÁ¸£·Î Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ÀÇ Ãʰú üũ°¡ À¯È¿ÇÏ°Ô µË´Ï´Ù.ÀÇÇØ ±ÍÀǰªÀÌ Á¦·Î·Î ¼³Á¤µÇ¸é, ÀÌ ¸Þ¸ð¸®ÇÁ¸£·Î Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ÀÇ Ãʰú üũ°¡ ¹«È¿°¡ µË´Ï´Ù.
threhsold
- »õ·Î¿î Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ (¹ÙÀÌÆ® ´ÜÀ§). ºÎ°¡ ¾Æ´Ñ ¼öÄ¡
IllegalArgumentException
- threshold°¡
ºÎÀÇ °æ¿ì, ¶Ç´Â ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ »ç¿ë °¡´É ¸Þ¸ð¸®·®ÀÇ ÃÖ´ë°ª
(Á¤Àǵǰí ÀÖ´Â °æ¿ì)¸¦ ³Ñ´Â °æ¿ì
UnsupportedOperationException
- ÀÌ ¸Þ¸ð¸®ÇÁ¸£°¡ Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø
ÇÏÁö ¾Ê´Â °æ¿ì
SecurityException
- ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ Á¸ÀçÇÏ´Â °æ¿ì·Î È£Ãâ¿øÀÌ ManagementPermission("control")¸¦ °¡ÁöÁö ¾Ê´Â °æ¿ìisCollectionUsageThresholdSupported()
,
Collection usage threshold boolean isCollectionUsageThresholdExceeded()
UnsupportedOperationException
- ÀÌ ¸Þ¸ð¸®ÇÁ¸£°¡ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø
ÇÏÁö ¾Ê´Â °æ¿ìlong getCollectionUsageThresholdCount()
UnsupportedOperationException
- ÀÌ ¸Þ¸ð¸®ÇÁ¸£°¡ Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø
ÇÏÁö ¾Ê´Â °æ¿ìisCollectionUsageThresholdSupported()
MemoryUsage getCollectionUsage()
MBeanServer ¾×¼¼½º:
MemoryUsage
¸ÊÇüÀº, MemoryUsage
·Î ÁöÁ¤µÈ ¼Ó¼ºÀ» °¡Áö´Â CompositeData ÀÔ´Ï´Ù.
MemoryUsage
. ÀÌ ¸Þ¼µå°¡ Áö¿ø
µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì´Â nullboolean isCollectionUsageThresholdSupported()
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀÌÀü Ŭ·¡½º Â÷ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
°³¿ä: NESTED | Çʵå | »ý¼ºÀÚ | ¸Þ¼µå | »ó¼¼: Çʵå | »ý¼ºÀÚ | ¸Þ¼µå |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.