JavaTM 2 Platform
Standard Ed. 5.0

java.lang.management
ÀÎÅÍÆäÀ̽º MemoryPoolMXBean


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°³ ÀÌ»óÀÇ ¸Þ¸ð¸®ÇÁ¸£¸¦ º¸À¯ÇÒ ¼ö ÀÖ½À´Ï´Ù. °¢ ¸Þ¸ð¸®ÇÁ¸£´Â ¾Æ·¡ÀÇ ÇüÅÂÀÇ ¾î´À ÂÊÀΰ¡ÀÇ ¸Þ¸ð¸® ¿µ¿ªÀ» ³ªÅ¸³À´Ï´Ù.

¸Þ¸ð¸® »ç¿ë·®ÀÇ °¨½Ã

¸Þ¸ð¸®ÇÁ¸£¿¡´Â ¾Æ·¡ÀÇ ¼Ó¼ºÀÌ ÀÖ½À´Ï´Ù.

1. ¸Þ¸ð¸® »ç¿ë·®

getUsage() ¸Þ¼­µå´Â ¸Þ¸ð¸®ÇÁ¸£ÀÇ ÇöÀçÀÇ ´ë·«ÀÇ »ç¿ë·®À» Á¦°øÇÕ´Ï´Ù. °¡ºñÁö Ä÷ºÆ®µÈ ¸Þ¸ð¸®ÇÁ¸£ÀÇ °æ¿ì, »ç¿ëµÈ ¸Þ¸ð¸®ÀÇ ¾ç¿¡´Â ¡¸µµ´Þ °¡´ÉÇÑ¡¹°´Ã¼¿Í ¡¸µµ´Þ ºÒ°¡´ÉÇÑ¡¹°´Ã¼ÀÇ ¾çÂÊ ¸ðµÎ¸¦ Æ÷ÇÔÇÑ, ¸Þ¸ð¸®ÇÁ¸£ÀÇ ¸ðµç °´Ã¼°¡ Â÷ÁöÇÏ´Â ¸Þ¸ð¸®°¡ Æ÷ÇԵ˴ϴÙ.

ÀϹÝÀûÀ¸·Î ÀÌ ¸Þ¼­µå´Â ºÎÇÏÀÇ ÀûÀº Á¶ÀÛÀ¸·Î ´ë·«ÀÇ ¸Þ¸ð¸® »ç¿ë·®À» ÃëµæÇÕ´Ï´Ù. °´Ã¼°¡ ¿¬¼ÓÇØ ÆÑ µÇÁö ¾Ê´Â °æ¿ì µî, ÀϺÎÀÇ ¸Þ¸ð¸®ÇÁ¸£¿¡¼­´Â ÀÌ ¸Þ¼­µå´Â ÇöÀçÀÇ ¸Þ¸ð¸® »ç¿ë·®À» ÆÇÁ¤Çϴµ¥ ¾ó¸¶Àΰ¡ÀÇ °è»êÀ» ÇÊ¿ä·Î ÇÏ´Â ºÎÇÏÀÇ Å« Á¶ÀÛÀÌ µÉ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ±¸Çö¿¡¼­´Â ÀÌ·¯ÇÑ ÄÉÀ̽º¸¦ ¹®¼­È­ÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

2. ÇÇÅ©¸Þ¸ð¸® »ç¿ë·®

Java °¡»ó ¸Ó½ÅÀº Java °¡»ó ¸Ó½ÅÀÌ ½ÃÀ۵ǰųª ÇÇÅ©¸Þ¸ð¸® »ç¿ë·®ÀÌ ¸®¼Â µÇ°Å³ª ÇÏ°í ³ª¼­ÀÇ ¸Þ¸ð¸®ÇÁ¸£ÀÇ ÇÇÅ©¸Þ¸ð¸® »ç¿ë·®À» º¸°ü À¯ÁöÇÕ´Ï´Ù. ÇÇÅ©¸Þ¸ð¸® »ç¿ë·®Àº, getPeakUsage() ¸Þ¼­µå¿¡ ÀÇÇØ µ¹·ÁÁÖ°íÁ®resetPeakUsage() ¸Þ¼­µå¸¦ È£ÃâÇØ ¸®¼Â µË´Ï´Ù.

3. »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡

°¢ ¸Þ¸ð¸®ÇÁ¸£´Â ¡¸»ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¡¹¶ó°í ÇÏ´Â °ü¸® °¡´ÉÇÑ ¼Ó¼ºÀ» °¡Á®, ÀÌÀÇÇØ ±ÍÀÇÄ¡´Â Java °¡»ó ¸Ó½ÅÀÌ ÁöÁ¤ÇÑ ±âº»°ªÀ» °¡Áý´Ï´Ù. ±âº»°ª´Â Ç÷§Æû¿¡ ÀÀÇØ ´Ù¸¨´Ï´Ù. »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡´Â setUsageThreshold ¸Þ¼­µå¸¦ »ç¿ëÇØ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.ÀÇÇØ ±ÍÀÇ°ªÀÌ Á¤ÀÇ °ªÀ¸·Î ¼³Á¤µÇ¸é, ÀÌ ¸Þ¸ð¸®ÇÁ¸£·Î »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ÀÇ ÃÊ°ú üũ°¡ À¯È¿ÇÏ°Ô µË´Ï´Ù. »ç¿ë·®ÀÇÇØ ±ÍÀÇ°ªÀÌ Á¦·Î·Î ¼³Á¤µÇ¸é, ÀÌ ¸Þ¸ð¸®ÇÁ¸£·Î »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ÀÇ ÃÊ°ú üũ°¡ ¹«È¿°¡ µË´Ï´Ù. MemoryPoolMBean#isUsageThresholdSupported ¸Þ¼­µå¸¦ »ç¿ëÇØ, ÀÌ ±â´ÉÀÌ Áö¿ø µÇ°í ÀÖ´ÂÁö¸¦ ÆÇÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

Java °¡»ó ¸Ó½ÅÀº ÃÖÀûÀÎ ½Ã±â (ÀϹÝÀûÀ¸·Î °¡ºñÁö Ä÷º¼Ç½Ã)¿¡ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ ÃÊ°ú üũ¸¦ ¸Þ¸ð¸®ÇÁ¸£ ¸¶´Ù ½ÇÇàÇÕ´Ï´Ù. °¢ ¸Þ¸ð¸®ÇÁ¸£´Â ¸Þ¸ð¸®ÇÁ¸£ »ç¿ë·®ÀÌÀÇÇØ ±ÍÀÇÄ¡¸¦ ÃÊ°úÇÏ°í ÀÖ´Â °ÍÀ» Java °¡»ó ¸Ó½ÅÀÌ °ËÃâÇÒ ¶§¸¶´Ù Áõ°¡ÇÏ´Â usage threshold count¸¦ º¸°ü À¯ÁöÇÏ°í ÀÖ½À´Ï´Ù.

ÀÌ °ü¸® °¡´ÉÇÑ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ ¼Ó¼ºÀº ¸Þ¸ð¸® »ç¿ë·®ÀÇ Áõ°¡ °æÇâÀ» ³·Àº ¿À¹öÇìµå·Î °¨½ÃÇϵµ·Ï ¼³°èµÇ°í ÀÖ½À´Ï´Ù. »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡´Â ÀϺÎÀÇ ¸Þ¸ð¸®ÇÁ¸£¿¡ ÀûÇÕÇÏÁö ¾Ê´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ¸¹Àº Java °¡»ó ¸Ó½Å ±¸ÇöÀ¸·Î »ç¿ëµÇ´Â °øÅëÀÇ °¡ºñÁö Ä÷ºÅÍÀÎ ¼¼´ëº° °¡ºñÁö Ä÷ºÅÍ´Â ¿¬·ÉÀ¸·Î °´Ã¼¸¦ ±¸ºÐÇØ, 2 ¼¼´ë ÀÌ»óÀ» °ü¸®ÇÕ´Ï´Ù. ´ëºÎºÐÀÇ °´Ã¼´Â ¡¸°¡Àå ÀþÀº ¼¼´ë¡¹(ÀþÀº ¸Þ¸ð¸®ÇÁ¸£)¿¡ ÇÒ´çÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀþÀº ¸Þ¸ð¸®ÇÁ¸£´Â °¡µæ µÇµµ·Ï ¼³°èµÇ°í ÀÖ½À´Ï´Ù. ¶Ç, °¡ºñÁö Ä÷º¼Ç½Ã¿¡ ´ëºÎºÐÀÇ °æ¿ì µµ´Þ ºÒ°¡´ÉÇÑ ´Ü±â°£ °¡µ¿ÀÇ °´Ã¼°¡ ¼ö¿ëµÇ±â ¶§¹®¿¡ ÀþÀº ¸Þ¸ð¸®ÇÁ¸£¸¦ ¼öÁýÇϸé, ¸Þ¸ð¸® °ø°£ÀÇ ´ëºÎºÐÀÌ ÇعæµË´Ï´Ù. ÀÌ ÄÉÀ̽º¿¡¼­´Â ÀþÀº ¸Þ¸ð¸®ÇÁ¸£°¡ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø ÇÏÁö ¾Ê´Â ÆíÀÌ ÀûÀýÇÕ´Ï´Ù. ´õÇØ, »ç¿ë·®ÀÇÀÇÇØ ±ÍÀÇÄ¡¿Í ºñ±³ÇÒ ¶§ÀÇ ¿À¹öÇìµå´Â °´Ã¼ ÇÒ´çÀÇ ÄÚ½ºÆ®º¸´Ù ºñ½Î°Ô µé¹Ç·Î 1°³ÀÇ ¸Þ¸ð¸®ÇÁ¸£¿¡ÀÇ °´Ã¼ÀÇ ÇÒ´çÀÇ ÄÚ½ºÆ®°¡ ±ØÈ÷ ³·Àº °æ¿ì (¿¹, ¿øÀÚ Æ÷ÀÎÅÍ ±³È¯ µî), Java °¡»ó ¸Ó½ÅÀº ¸Þ¸ð¸®ÇÁ¸£ÀÇ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø ÇÏÁö ¾Ê½À´Ï´Ù.

½Ã½ºÅÛÀÇ ¸Þ¸ð¸® »ç¿ë·®Àº, Æú¸µÀ̳ªÇØ ±ÍÀÇÄ¡ ÅëÁöÀÇ ¸ÞÄ«´ÏÁòÀ» »ç¿ëÇØ °¨½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù.

  1. Æú¸µ

    ¾îÇø®ÄÉÀ̼ǿ¡¼­´Â ¸ðµç ¸Þ¸ð¸®ÇÁ¸£¿¡ ´ëÇؼ­ 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) {
                  ...
              }
           }
           

    »ó±â »ùÇà ÄÚµå´Â ¸Þ¸ð¸® »ç¿ë·®ÀÌ ÀϽÃÀûÀ¸·Î »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ ÀÌÇÏ·Î ÀúÇÏÇÑ ÄÉÀ̽º¸¦, 2°³ÀÇ ¹Ýº¹°£¿¡ ¸Þ¸ð¸® »ç¿ë·®ÀÌÀÇÇØ ±ÍÀÇÄ¡¸¦ ³ÑÀºÃ¤·Î ÀÖ´Â ÄÉÀ̽º·ÎºÎÅÍ ±¸º°ÇÏ°í ÀÖ½À´Ï´Ù. 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();
           }
           

  2. »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ ÅëÁö

    »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ ÅëÁö´Â 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() ¸Þ¼­µå¿¡ ÀÇÇØ ¸®ÅÏµÈ ÇöÀçÀÇ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ Ä«¿îÆ®¿Í ºñ±³ÇØ, ÀÌ·¯ÇÑ »óȲÀÌ ¹ß»ýÇß´ÂÁö ¾î¶°Çß´ÂÁö¸¦ ÆÇÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

4. Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡

ÀϺÎÀÇ °¡ºñÁö Ä÷ºÆ®µÈ ¸Þ¸ð¸®ÇÁ¸£ÀÎ ¸¸Å­ Àû¿ëÇÒ ¼ö ÀÖ´Â °ü¸® °¡´ÉÇÑ ¼Ó¼ºÀÔ´Ï´Ù. Java °¡»ó ¸Ó½ÅÀÌ, °¡ºñÁö Ä÷º¼Ç½Ã¿¡ ¸Þ¸ð¸®ÇÁ¸£¿¡ ÀÖ´Â »ç¿ëÇÏÁö ¾Ê´Â °´Ã¼¸¦ ¸®»çÀÌŬÇÏ´Â °ÍÀ¸·Î ¸Þ¸ð¸® °ø°£À» Àç»ýÇÏ´Â °Í¿¡ ÃÖ¼±À» ´ÙÇÑµÚ °¡ºñÁö Ä÷ºÆ®µÈ ¸Þ¸ð¸®ÇÁ¸£¿¡ ÀÖ´Â ÀϺÎÀÇ ¹ÙÀÌÆ®¼ö´Â ±×·±µ¥µµ »ç¿ëÁßÀÔ´Ï´Ù.ÀÇÇØ ±ÍÀÇÄ¡¸¦ ÃÊ°úÇßÀ» °æ¿ì, Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ ÃÊ°ú ÅëÁö°¡ ¹ßÇàµÇµµ·Ï, Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ »ç¿ëÇØ, ÀÌ ÀϺÎÀÇ ¹ÙÀÌÆ®¼ö¿¡ °ªÀ» ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´õÇØ, Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ Ä«¿îÆ®°¡ ´Ã·ÁÁý´Ï´Ù.

isCollectionUsageThresholdSupported() ¸Þ¼­µå¸¦ »ç¿ëÇØ, ÀÌ ±â´ÉÀÌ Áö¿ø µÇ°í ÀÖ´ÂÁö¸¦ ÆÇÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

Java °¡»ó ¸Ó½ÅÀº Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ üũ¸¦ ¸Þ¸ð¸®ÇÁ¸£ ¸¶´Ù ½ÇÇàÇÕ´Ï´Ù. ÀÌ Ã¼Å©´Â Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇ°ªÀÌ Á¤ÀÇ °ªÀ¸·Î ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì¿¡ À¯È¿ÇÏ°Ô µË´Ï´Ù. Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇ°ªÀÌ Á¦·Î·Î ¼³Á¤µÇ¾úÀ» °æ¿ì, ÀÌ Ã¼Å©´Â ÀÌ ¸Þ¸ð¸®ÇÁ¸£·Î ¹«È¿°¡ µË´Ï´Ù. ±âº»°ª´Â Á¦·ÎÀÔ´Ï´Ù. Java °¡»ó ¸Ó½ÅÀº °¡ºñÁö Ä÷º¼Ç½Ã¿¡ Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ üũ¸¦ ½ÇÇàÇÕ´Ï´Ù.

ÀϺÎÀÇ °¡ºñÁö Ä÷ºÆ®µÈ ¸Þ¸ð¸®ÇÁ¸£¿¡¼­´Â Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø ÇÏÁö ¾Ê°Ô ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ¸Þ¸ð¸®ÇÁ¸£´Â ¿¬¼ÓÀûÀÎ º´Çà °¡ºñÁö Ä÷ºÅÍÀÎ ¸¸Å­ º¸´Ù °ü¸®µË´Ï´Ù. »ç¿ëÇÏÁö ¾Ê´Â °´Ã¼¸¦ º´Çà °¡ºñÁö Ä÷ºÅÍ°¡ µ¿½Ã¿¡ Àç»ýÇÏ°í ÀÖ´Â µ¿¾È¿¡ ¾î¶°ÇÑ thread¿¡ÀÇÇØ ÀÌ ¸Þ¸ð¸®ÇÁ¸£¿¡ °´Ã¼¸¦ ÇÒ´çÇÒ ¼ö ÀÖ½À´Ï´Ù . ÃæºÐÈ÷ Á¤ÀÇµÈ °¡ºñÁö Ä÷º¼Ç ½Ã°£ (¸Þ¸ð¸® »ç¿ë·®À» üũÇϴµ¥ ÃÖÀûÀÎ ½Ã°£)ÀÌ ¾ø´Â ÇÑ, Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø Çؼ­´Â ¾ÈµË´Ï´Ù.

Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡´Â Java °¡»ó ¸Ó½ÅÀÌ ¸Þ¸ð¸® °ø°£ÀÇ Àç»ý¿¡ ÃÖ¼±À» ´ÙÇÑµÚ ¸Þ¸ð¸® »ç¿ë·®À» °¨½ÃÇϵµ·Ï ¼³°èµÇ°í ÀÖ½À´Ï´Ù. »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡·Î ¼³¸íÇÑ Æú¸µ ¹×ÀÇÇØ ±ÍÀÇÄ¡ ÅëÁö ¸ÞÄ«´ÏÁò¿¡ÀÇÇØ °°Àº ¹æ¹ýÀ¸·Î Ä÷º¼Ç »ç¿ë·®À» °¨½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù.

µµÀÔµÈ ¹öÀü :
1.5
°ü·Ã Ç׸ñ:
JMX Specification, Ways to Access MXBeans

¸Þ¼­µå °³¿ä
 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 Ä¡·Î ¼³Á¤ÇÕ´Ï´Ù.
 

¸Þ¼­µåÀÇ »ó¼¼

getName

String  getName()
ÀÌ ¸Þ¸ð¸®ÇÁ¸£¸¦ ³ªÅ¸³»´Â À̸§À» ¸®ÅÏÇÕ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ À̸§

getType

MemoryType  getType()
ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ ÇüŸ¦ ¸®ÅÏÇÕ´Ï´Ù.

MBeanServer ¾×¼¼½º:
MemoryType ¸ÊÇüÀº String, °ªÀº MemoryType À̸§ÀÔ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ ÇüÅÂ

getUsage

MemoryUsage  getUsage()
ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ ¸Þ¸ð¸® »ç¿ë·®ÀÇ Æò°¡Ä¡¸¦ ¸®ÅÏÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå´Â ¸Þ¸ð¸®ÇÁ¸£°¡ À¯È¿ÇÏÁö ¾ÊÀº (Á¸ÀçÇÏÁö ¾Ê´Â´Ù) °æ¿ì¿¡ nullÀ» ¸®ÅÏÇÕ´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ ÇöÀçÀÇ ¸Þ¸ð¸® »ç¿ë·®ÀÇ best effortÀÇ Æò°¡¸¦ ½Ç½ÃÇϵµ·Ï Java °¡»ó ¸Ó½Å¿¡ ¿ä±¸ÇÕ´Ï´Ù. ÀϺÎÀÇ ¸Þ¸ð¸®ÇÁ¸£¿¡¼­´Â ÀÌ ¸Þ¼­µå´Â Æò°¡Ä¡ÀÇ ÆÇÁ¤¿¡ ¾ó¸¶Àΰ¡ÀÇ °è»êÀ» ÇÊ¿ä·Î ÇÏ´Â ºÎÇÏÀÇ Å« Á¶ÀÛÀÌ µÉ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ±¸Çö¿¡¼­´Â ÀÌ·¯ÇÑ ÄÉÀ̽º¸¦ ¹®¼­È­ÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â ½Ã½ºÅ۸޸𸮠»ç¿ë·®ÀÇ °¨½Ã¿Í ¸Þ¸ð¸® ºÎÁ· Á¶°ÇÀÇ °ËÃâ¿¡ »ç¿ëÇϱâ À§Çؼ­ ¼³°èµÇ°í ÀÖ½À´Ï´Ù.

MBeanServer ¾×¼¼½º:
MemoryUsage ¸ÊÇüÀº, MemoryUsage ·Î ÁöÁ¤µÈ ¼Ó¼ºÀ» °¡Áö´Â CompositeData ÀÔ´Ï´Ù.

¹Ýȯ°ª:
MemoryUsage °´Ã¼. ÀÌ Ç®ÀÌ ¹«È¿ÀÎ °æ¿ì´Â null

getPeakUsage

MemoryUsage  getPeakUsage()
Java °¡»ó ¸Ó½ÅÀÌ ½ÃÀÛµÇ°í ³ª¼­, ¶Ç´Â ÇÇÅ©°¡ ¸®¼Â µÇ°í ³ª¼­ÀÇ, ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ ÇÇÅ©¸Þ¸ð¸® »ç¿ë·®À» ¸®ÅÏÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå´Â ¸Þ¸ð¸®ÇÁ¸£°¡ À¯È¿ÇÏÁö ¾ÊÀº (Á¸ÀçÇÏÁö ¾Ê´Â´Ù) °æ¿ì nullÀ» ¸®ÅÏÇÕ´Ï´Ù.

MBeanServer ¾×¼¼½º:
MemoryUsage ¸ÊÇüÀº, MemoryUsage ·Î ÁöÁ¤µÈ ¼Ó¼ºÀ» °¡Áö´Â CompositeData ÀÔ´Ï´Ù.

¹Ýȯ°ª:
ÇÇÅ©¸Þ¸ð¸® »ç¿ë·®À» ³ªÅ¸³»´Â MemoryUsage °´Ã¼. ÀÌ Ç®ÀÌ ¹«È¿ÀÎ °æ¿ì´Â null

resetPeakUsage

void resetPeakUsage()
ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ ÇÇÅ©¸Þ¸ð¸® »ç¿ë·® Åë°è¸¦ ÇöÀçÀÇ ¸Þ¸ð¸® »ç¿ë·®¿¡ ¸®¼Â ÇÕ´Ï´Ù.

¿¹¿Ü:
SecurityException - ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ Á¸ÀçÇÏ´Â °æ¿ì·Î È£Ãâ¿øÀÌ ManagementPermission("control")¸¦ °¡ÁöÁö ¾Ê´Â °æ¿ì

isValid

boolean isValid()
ÀÌ ¸Þ¸ð¸®ÇÁ¸£°¡ Java °¡»ó ¸Ó½ÅÀ¸·Î À¯È¿ÇÑ°¡ ¾î¶²°¡¸¦ Å×½ºÆ®ÇÕ´Ï´Ù. Java °¡»ó ¸Ó½ÅÀÌ ¸Þ¸ð¸®½Ã½ºÅÛÀ¸·ÎºÎÅÍ ¸Þ¸ð¸®ÇÁ¸£¸¦ »èÁ¦Çϸé, ¸Þ¸ð¸®ÇÁ¸£´Â ¹«È¿°¡ µË´Ï´Ù.

¹Ýȯ°ª:
½ÇÇàµÇ°í ÀÖ´Â Java °¡»ó ¸Ó½ÅÀ¸·Î ¸Þ¸ð¸®ÇÁ¸£°¡ À¯È¿ÇÑ °æ¿ì´Â true. ±×·¸Áö ¾ÊÀº °æ¿ì´Â false

getMemoryManagerNames

String [] getMemoryManagerNames()
ÀÌ ¸Þ¸ð¸®ÇÁ¸£¸¦ °ü¸®ÇÏ°í ÀÖ´Â MS-DOS¸Þ¸ð¸® °ü¸® ÇÁ·Î±×·¥ À̸§À» ¸®ÅÏÇÕ´Ï´Ù. °¢ ¸Þ¸ð¸®ÇÁ¸£´Â Àû¾îµµ 1°³ÀÇ MS-DOS¸Þ¸ð¸® °ü¸® ÇÁ·Î±×·¥¿¡ ÀÇÇØ °ü¸®µË´Ï´Ù.

¹Ýȯ°ª:
String °´Ã¼ÀÇ ¹è¿­. °¢ String °´Ã¼´Â ÀÌ ¸Þ¸ð¸®ÇÁ¸£¸¦ °ü¸®ÇÏ°í ÀÖ´Â MS-DOS¸Þ¸ð¸® °ü¸® ÇÁ·Î±×·¥ À̸§

getUsageThreshold

long getUsageThreshold()
ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ ¹ÙÀÌÆ® ´ÜÀ§·Î ¸®ÅÏÇÕ´Ï´Ù. °¢ ¸Þ¸ð¸®ÇÁ¸£´Â Ç÷§Æû¿¡ ÀÇÁ¸µÈ µðÆúÆ®ÀÇÀÇÇØ ±ÍÀÇÄ¡¸¦ °¡Áý´Ï´Ù. ÇöÀçÀÇ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡´Â setUsageThreshold ¸Þ¼­µå¸¦ »ç¿ëÇØ º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.

¹Ýȯ°ª:
ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ (¹ÙÀÌÆ® ´ÜÀ§)
¿¹¿Ü:
UnsupportedOperationException - ÀÌ ¸Þ¸ð¸®ÇÁ¸£°¡ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø ÇÏÁö ¾Ê´Â °æ¿ì
°ü·Ã Ç׸ñ:
isUsageThresholdSupported()

setUsageThreshold

void setUsageThreshold(long threshold)
ÀÌ ¸Þ¸ð¸®ÇÁ¸£°¡ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø ÇÏ°í ÀÖ´Â °æ¿ì, ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇÀÇÇØ ±ÍÀÇ°ªÀÌ ÁöÁ¤µÈ threshold Ä¡·Î ¼³Á¤ÇÕ´Ï´Ù.ÀÇÇØ ±ÍÀÇ°ªÀÌ Á¤ÀÇ °ªÀ¸·Î ¼³Á¤µÇ¸é, ÀÌ ¸Þ¸ð¸®ÇÁ¸£·Î »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ÀÇ ÃÊ°ú üũ°¡ À¯È¿ÇÏ°Ô µË´Ï´Ù.ÀÇÇØ ±ÍÀÇ°ªÀÌ Á¦·Î·Î ¼³Á¤µÇ¸é, ÀÌ ¸Þ¸ð¸®ÇÁ¸£·Î »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ÀÇ ÃÊ°ú üũ°¡ ¹«È¿°¡ µË´Ï´Ù.

ÆĶó¹ÌÅÍ:
threshold - ¹ÙÀÌÆ® ´ÜÀ§ÀÇ »õ·Ó°í ±ÍÀÇÄ¡. ºÎ°¡ ¾Æ´Ñ ¼öÄ¡
¿¹¿Ü:
IllegalArgumentException - threshold°¡ ºÎÀÇ °æ¿ì, ¶Ç´Â ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ »ç¿ë °¡´É ¸Þ¸ð¸®·®ÀÇ ÃÖ´ë°ª (Á¤Àǵǰí ÀÖ´Â °æ¿ì)¸¦ ³Ñ´Â °æ¿ì
UnsupportedOperationException - ÀÌ ¸Þ¸ð¸®ÇÁ¸£°¡ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø ÇÏÁö ¾Ê´Â °æ¿ì
SecurityException - ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ Á¸ÀçÇÏ´Â °æ¿ì·Î È£Ãâ¿øÀÌ ManagementPermission("control")¸¦ °¡ÁöÁö ¾Ê´Â °æ¿ì
°ü·Ã Ç׸ñ:
isUsageThresholdSupported(), Usage threshold

isUsageThresholdExceeded

boolean isUsageThresholdExceeded()
ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ ¸Þ¸ð¸® »ç¿ë·®ÀÌ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¿¡ À̸¥, ¶Ç´Â ³Ñ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¸¦ Å×½ºÆ®ÇÕ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ ¸Þ¸ð¸® »ç¿ë·®ÀÌÀÇÇØ ±ÍÀÇÄ¡¿¡ À̸£·¶´ÂÁö, ³Ñ¾úÀ» °æ¿ì´Â true. ±×·¸Áö ¾ÊÀº °æ¿ì´Â false
¿¹¿Ü:
UnsupportedOperationException - ÀÌ ¸Þ¸ð¸®ÇÁ¸£°¡ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø ÇÏÁö ¾Ê´Â °æ¿ì

getUsageThresholdCount

long getUsageThresholdCount()
¸Þ¸ð¸® »ç¿ë·®ÀÌÀÇÇØ ±ÍÀÇÄ¡¸¦ ³ÑÀº ȸ¼ö¸¦ ¸®ÅÏÇÕ´Ï´Ù.

¹Ýȯ°ª:
¸Þ¸ð¸® »ç¿ë·®ÀÌÀÇÇØ ±ÍÀÇÄ¡¸¦ ³ÑÀº ȸ¼ö
¿¹¿Ü:
UnsupportedOperationException - ÀÌ ¸Þ¸ð¸®ÇÁ¸£°¡ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø ÇÏÁö ¾Ê´Â °æ¿ì

isUsageThresholdSupported

boolean isUsageThresholdSupported()
ÀÌ ¸Þ¸ð¸®ÇÁ¸£°¡ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø ÇÒÁö ¾î¶³Áö¸¦ Å×½ºÆ®ÇÕ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ ¸Þ¸ð¸®ÇÁ¸£°¡ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿øÇÏ´ÂÀÎ °æ¿ì´Â true, ±×·¸Áö ¾ÊÀº °æ¿ì´Â false

getCollectionUsageThreshold

long getCollectionUsageThreshold()
ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ (¹ÙÀÌÆ® ´ÜÀ§)¸¦ ¸®ÅÏÇÕ´Ï´Ù. ±âº»°ª´Â Á¦·ÎÀÔ´Ï´Ù. Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡´Â setCollectionUsageThreshold ¸Þ¼­µå¸¦ »ç¿ëÇØ º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.

¹Ýȯ°ª:
ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ (¹ÙÀÌÆ® ´ÜÀ§)
¿¹¿Ü:
UnsupportedOperationException - ÀÌ ¸Þ¸ð¸®ÇÁ¸£°¡ Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø ÇÏÁö ¾Ê´Â °æ¿ì
°ü·Ã Ç׸ñ:
isCollectionUsageThresholdSupported()

setCollectionUsageThreshold

void setCollectionUsageThreshold(long threhsold)
ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇ°ªÀÌ ÁöÁ¤µÈ threshold Ä¡·Î ¼³Á¤ÇÕ´Ï´Ù. ÀÌÀÇÇØ ±ÍÀÇÄ¡¸¦ Á¤ÀÇ °ªÀ¸·Î ¼³Á¤Çϸé, Java °¡»ó ¸Ó½ÅÀº ÀÌ ¸Þ¸ð¸®ÇÁ¸£·Î »ç¿ëµÇ¾î ÀÖÁö ¾ÊÀº °´Ã¼ÀÇ ¸®»çÀÌŬ¿¡ ÃÖ¼±À» ´ÙÇÑµÚ °¡Àå ÀûÇÕÇß´ø ½Ã±â¿¡ ¸Þ¸ð¸® »ç¿ë·®À» üũÇÕ´Ï´Ù.

ÀÇÇØ ±ÍÀÇ°ªÀÌ Á¤ÀÇ °ªÀ¸·Î ¼³Á¤µÇ¸é, ÀÌ ¸Þ¸ð¸®ÇÁ¸£·Î Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ÀÇ ÃÊ°ú üũ°¡ À¯È¿ÇÏ°Ô µË´Ï´Ù.ÀÇÇØ ±ÍÀÇ°ªÀÌ Á¦·Î·Î ¼³Á¤µÇ¸é, ÀÌ ¸Þ¸ð¸®ÇÁ¸£·Î Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ÀÇ ÃÊ°ú üũ°¡ ¹«È¿°¡ µË´Ï´Ù.

ÆĶó¹ÌÅÍ:
threhsold - »õ·Î¿î Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡ (¹ÙÀÌÆ® ´ÜÀ§). ºÎ°¡ ¾Æ´Ñ ¼öÄ¡
¿¹¿Ü:
IllegalArgumentException - threshold°¡ ºÎÀÇ °æ¿ì, ¶Ç´Â ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ »ç¿ë °¡´É ¸Þ¸ð¸®·®ÀÇ ÃÖ´ë°ª (Á¤Àǵǰí ÀÖ´Â °æ¿ì)¸¦ ³Ñ´Â °æ¿ì
UnsupportedOperationException - ÀÌ ¸Þ¸ð¸®ÇÁ¸£°¡ Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø ÇÏÁö ¾Ê´Â °æ¿ì
SecurityException - ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ Á¸ÀçÇÏ´Â °æ¿ì·Î È£Ãâ¿øÀÌ ManagementPermission("control")¸¦ °¡ÁöÁö ¾Ê´Â °æ¿ì
°ü·Ã Ç׸ñ:
isCollectionUsageThresholdSupported(), Collection usage threshold

isCollectionUsageThresholdExceeded

boolean isCollectionUsageThresholdExceeded()
Java °¡»ó ¸Ó½ÅÀÌ ÃÖ¼±À» ´ÙÇÑ ¸¶Áö¸· Ä÷º¼ÇÀÇ ÈÄ¿¡ ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ ¸Þ¸ð¸® »ç¿ë·®ÀÌ Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¿¡ À̸¥, ¶Ç´Â ³Ñ¾ú´ÂÁö¸¦ Å×½ºÆ®ÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå´Â Java °¡»ó ¸Ó½Å¿¡ º¸Åë ÀÇ ÀÚµ¿ ¸Þ¸ð¸® ¸Þ´ÏÁö¸ÕÆ® ÀÌ¿ÜÀÇ °¡ºñÁö Ä÷º¼ÇÀ» ½ÇÇàÇϵµ·Ï ¿ä±¸ÇÏÁö ¾Ê½À´Ï´Ù.

¹Ýȯ°ª:
ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ ¸Þ¸ð¸® »ç¿ë·®ÀÌ ¸¶Áö¸· Ä÷º¼ÇÀ¸·Î Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¿¡ À̸£·¶´ÂÁö, ³Ñ¾úÀ» °æ¿ì´Â true. ±×·¸Áö ¾ÊÀº °æ¿ì´Â false
¿¹¿Ü:
UnsupportedOperationException - ÀÌ ¸Þ¸ð¸®ÇÁ¸£°¡ »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø ÇÏÁö ¾Ê´Â °æ¿ì

getCollectionUsageThresholdCount

long getCollectionUsageThresholdCount()
¸Þ¸ð¸® »ç¿ë·®ÀÌ Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ ³ÑÀº °ÍÀ» Java °¡»ó ¸Ó½ÅÀÌ °ËÃâÇÑ È¸¼ö¸¦ ¸®ÅÏÇÕ´Ï´Ù.

¹Ýȯ°ª:
¸Þ¸ð¸® »ç¿ë·®ÀÌ Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¿¡ À̸¥, ¶Ç´Â ³ÑÀº ȸ¼ö
¿¹¿Ü:
UnsupportedOperationException - ÀÌ ¸Þ¸ð¸®ÇÁ¸£°¡ Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø ÇÏÁö ¾Ê´Â °æ¿ì
°ü·Ã Ç׸ñ:
isCollectionUsageThresholdSupported()

getCollectionUsage

MemoryUsage  getCollectionUsage()
Java °¡»ó ¸Ó½ÅÀÌ ÀÌ ¸Þ¸ð¸®ÇÁ¸£·Î »ç¿ëµÇÁö ¾Ê´Â °´Ã¼ÀÇ ¸®»çÀÌŬ¿¡ ¸¶Áö¸·¿¡ ÃÖ¼±À» ´ÙÇÑ µÚÀÇ ¸Þ¸ð¸® »ç¿ë·®À» ¸®ÅÏÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå´Â Java °¡»ó ¸Ó½Å¿¡ º¸Åë ÀÇ ÀÚµ¿ ¸Þ¸ð¸® ¸Þ´ÏÁö¸ÕÆ® ÀÌ¿ÜÀÇ °¡ºñÁö Ä÷º¼ÇÀ» ½ÇÇàÇϵµ·Ï ¿ä±¸ÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ ¸Þ¼­µå´Â Java °¡»ó ¸Ó½ÅÀÌ ÀÌ ¸Þ¼­µå¸¦ Áö¿ø ÇÏÁö ¾Ê´Â °æ¿ì¿¡ nullÀ» ¸®ÅÏÇÕ´Ï´Ù.

MBeanServer ¾×¼¼½º:
MemoryUsage ¸ÊÇüÀº, MemoryUsage ·Î ÁöÁ¤µÈ ¼Ó¼ºÀ» °¡Áö´Â CompositeData ÀÔ´Ï´Ù.

¹Ýȯ°ª:
Java °¡»ó ¸Ó½ÅÀÌ »ç¿ëµÇÁö ¾Ê´Â °´Ã¼ÀÇ ¸®»çÀÌŬ¿¡ ¸¶Áö¸·¿¡ ÃÖ¼±À» ´ÙÇÑ µÚÀÇ, ÀÌ ¸Þ¸ð¸®ÇÁ¸£ÀÇ ¸Þ¸ð¸® »ç¿ë·®À» ³ªÅ¸³»´Â MemoryUsage . ÀÌ ¸Þ¼­µå°¡ Áö¿ø µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì´Â null

isCollectionUsageThresholdSupported

boolean isCollectionUsageThresholdSupported()
ÀÌ ¸Þ¸ð¸®ÇÁ¸£°¡ Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿ø ÇÒÁö ¾î¶³Áö¸¦ Å×½ºÆ®ÇÕ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ ¸Þ¸ð¸®ÇÁ¸£°¡ Ä÷º¼Ç »ç¿ë·®ÀÇÇØ ±ÍÀÇÄ¡¸¦ Áö¿øÇÏ´ÂÀÎ °æ¿ì´Â true, ±×·¸Áö ¾ÊÀº °æ¿ì´Â false

JavaTM 2 Platform
Standard Ed. 5.0

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.