專注應用,關注發展,開拓創新

          <-------------------------------------------------------------------& 珍惜生命 . 善用時間 . 把握未來 . 創造價值。

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            11 Posts :: 17 Stories :: 10 Comments :: 0 Trackbacks

          j2se?5.0使用?Java?Management?Extensions?(JMX)來管理和監控java平臺。
          我們以一個例子來測試一下:

          1. import ?java.lang.management.ClassLoadingMXBean;
          2. import ?java.lang.management.CompilationMXBean;
          3. import ?java.lang.management.ManagementFactory;
          4. import ?java.lang.management.MemoryMXBean;
          5. import ?java.lang.management.MemoryManagerMXBean;
          6. import ?java.lang.management.MemoryPoolMXBean;
          7. import ?java.lang.management.OperatingSystemMXBean;
          8. import ?java.lang.reflect.InvocationTargetException;
          9. import ?java.lang.reflect.Method;
          10. import ?java.util.List;
          11. public ?class?JDKMBean
          12. {
          13. ????
          14. ????public?static?<T>?void?printMXBean(Class<T>?t,Object?object)
          15. ????{
          16. ????????Method[]?methods?=?t.getMethods();
          17. ????????T?instance?=?(T)object;
          18. ????????System.out.printf("%n---%s---%n",?t.getName());
          19. ????????for(Method?m:methods)
          20. ????????{
          21. ????????????if?(m.getName().startsWith("get"))
          22. ????????????{
          23. ????????????????try
          24. ????????????????{
          25. ????????????????????Object?rtValue?=?m.invoke(instance,new?Object[0]);
          26. ????????????????????System.out.printf("%s:%s%n",m.getName().substring(3),rtValue);
          27. ???????????????? }
          28. ????????????????catch?(IllegalArgumentException?e1)
          29. ????????????????{ ???
          30. ???????????????? }
          31. ????????????????catch?(IllegalAccessException?e)
          32. ????????????????{ ??
          33. ???????????????? }
          34. ????????????????catch?(InvocationTargetException?e)
          35. ????????????????{
          36. ???????????????? }
          37. ???????????? }
          38. ???????? }
          39. ???? }
          40. ????public?static?<T>?void?printMXBeans(Class<T>?t,List<T>?list)
          41. ????{
          42. ????????for(T?bean:list)
          43. ????????{
          44. ????????????printMXBean(t,bean);
          45. ???????? }
          46. ???? }
          47. ????public?static?void?main(String[]?args)
          48. ????{
          49. ????????JDKMBean.printMXBean(OperatingSystemMXBean.class,ManagementFactory.getOperatingSystemMXBean());
          50. ????????JDKMBean.printMXBean(CompilationMXBean.class,ManagementFactory.getCompilationMXBean());
          51. ????????JDKMBean.printMXBean(ClassLoadingMXBean.class,ManagementFactory.getClassLoadingMXBean());
          52. ????????JDKMBean.printMXBean(MemoryMXBean.class,ManagementFactory.getMemoryMXBean());
          53. ????????JDKMBean.printMXBeans(MemoryManagerMXBean.class,ManagementFactory.getMemoryManagerMXBeans());
          54. ????????JDKMBean.printMXBeans(MemoryPoolMXBean.class,ManagementFactory.getMemoryPoolMXBeans());
          55. ???? }
          56. }

          運行結果:

          ---java.lang.management.OperatingSystemMXBean---
          Arch:x86
          AvailableProcessors:2
          Name:Windows?2000
          Version:5.0

          ---java.lang.management.CompilationMXBean---
          TotalCompilationTime:5
          Name:HotSpot?Client?Compiler

          ---java.lang.management.ClassLoadingMXBean---
          LoadedClassCount:431
          UnloadedClassCount:0
          TotalLoadedClassCount:431

          ---java.lang.management.MemoryMXBean---
          HeapMemoryUsage:init?=?0(0K)?used?=?458288(447K)?committed?=?2031616(1984K)?max?=?66650112(65088K)
          NonHeapMemoryUsage:init?=?29556736(28864K)?used?=?12541248(12247K)?committed?=?29851648(29152K)?max?=?121634816(118784K)
          ObjectPendingFinalizationCount:0

          ---java.lang.management.MemoryManagerMXBean---
          MemoryPoolNames:[Ljava.lang.String;@6ca1c
          Name:CodeCacheManager

          ---java.lang.management.MemoryManagerMXBean---
          MemoryPoolNames:[Ljava.lang.String;@1bf216a
          Name:Copy

          ---java.lang.management.MemoryManagerMXBean---
          MemoryPoolNames:[Ljava.lang.String;@12ac982
          Name:MarkSweepCompact

          ---java.lang.management.MemoryPoolMXBean---
          CollectionUsage:null
          MemoryManagerNames:[Ljava.lang.String;@c20e24
          PeakUsage:init?=?196608(192K)?used?=?482048(470K)?committed?=?491520(480K)?max?=?33554432(32768K)
          Usage:init?=?196608(192K)?used?=?524352(512K)?committed?=?557056(544K)?max?=?33554432(32768K)
          UsageThreshold:0
          UsageThresholdCount:0
          Name:Code?Cache
          Type:Non-heap?memory

          ---java.lang.management.MemoryPoolMXBean---
          CollectionUsage:init?=?524288(512K)?used?=?0(0K)?committed?=?0(0K)?max?=?4194304(4096K)
          CollectionUsageThreshold:0
          CollectionUsageThresholdCount:0
          MemoryManagerNames:[Ljava.lang.String;@2e7263
          PeakUsage:init?=?524288(512K)?used?=?511160(499K)?committed?=?524288(512K)?max?=?4194304(4096K)
          Usage:init?=?524288(512K)?used?=?521688(509K)?committed?=?524288(512K)?max?=?4194304(4096K)
          Name:Eden?Space
          Type:Heap?memory

          ---java.lang.management.MemoryPoolMXBean---
          CollectionUsage:init?=?65536(64K)?used?=?0(0K)?committed?=?0(0K)?max?=?458752(448K)
          CollectionUsageThreshold:0
          CollectionUsageThresholdCount:0
          MemoryManagerNames:[Ljava.lang.String;@157f0dc
          PeakUsage:init?=?65536(64K)?used?=?65528(63K)?committed?=?65536(64K)?max?=?458752(448K)
          Usage:init?=?65536(64K)?used?=?65528(63K)?committed?=?65536(64K)?max?=?458752(448K)
          Name:Survivor?Space
          Type:Heap?memory

          ---java.lang.management.MemoryPoolMXBean---
          CollectionUsage:init?=?1441792(1408K)?used?=?0(0K)?committed?=?0(0K)?max?=?61997056(60544K)
          CollectionUsageThreshold:0
          CollectionUsageThresholdCount:0
          MemoryManagerNames:[Ljava.lang.String;@863399
          PeakUsage:init?=?1441792(1408K)?used?=?142120(138K)?committed?=?1441792(1408K)?max?=?61997056(60544K)
          Usage:init?=?1441792(1408K)?used?=?142120(138K)?committed?=?1441792(1408K)?max?=?61997056(60544K)
          UsageThreshold:0
          UsageThresholdCount:0
          Name:Tenured?Gen
          Type:Heap?memory

          ---java.lang.management.MemoryPoolMXBean---
          CollectionUsage:init?=?8388608(8192K)?used?=?0(0K)?committed?=?0(0K)?max?=?67108864(65536K)
          CollectionUsageThreshold:0
          CollectionUsageThresholdCount:0
          MemoryManagerNames:[Ljava.lang.String;@a59698
          PeakUsage:init?=?8388608(8192K)?used?=?641040(626K)?committed?=?8388608(8192K)?max?=?67108864(65536K)
          Usage:init?=?8388608(8192K)?used?=?641040(626K)?committed?=?8388608(8192K)?max?=?67108864(65536K)
          UsageThreshold:0
          UsageThresholdCount:0
          Name:Perm?Gen
          Type:Non-heap?memory

          ---java.lang.management.MemoryPoolMXBean---
          CollectionUsage:init?=?8388608(8192K)?used?=?0(0K)?committed?=?0(0K)?max?=?8388608(8192K)
          CollectionUsageThreshold:0
          CollectionUsageThresholdCount:0
          MemoryManagerNames:[Ljava.lang.String;@141d683
          PeakUsage:init?=?8388608(8192K)?used?=?5601632(5470K)?committed?=?8388608(8192K)?max?=?8388608(8192K)
          Usage:init?=?8388608(8192K)?used?=?5601632(5470K)?committed?=?8388608(8192K)?max?=?8388608(8192K)
          UsageThreshold:0
          UsageThresholdCount:0
          Name:Perm?Gen?[shared-ro]
          Type:Non-heap?memory

          ---java.lang.management.MemoryPoolMXBean---
          CollectionUsage:init?=?12582912(12288K)?used?=?0(0K)?committed?=?0(0K)?max?=?12582912(12288K)
          CollectionUsageThreshold:0
          CollectionUsageThresholdCount:0
          MemoryManagerNames:[Ljava.lang.String;@16a55fa
          PeakUsage:init?=?12582912(12288K)?used?=?5850024(5712K)?committed?=?12582912(12288K)?max?=?12582912(12288K)
          Usage:init?=?12582912(12288K)?used?=?5850024(5712K)?committed?=?12582912(12288K)?max?=?12582912(12288K)
          UsageThreshold:0
          UsageThresholdCount:0
          Name:Perm?Gen?[shared-rw]
          Type:Non-heap?memory
          posted on 2006-09-13 23:44 吳名居 閱讀(274) 評論(0)  編輯  收藏 所屬分類: java高級
          主站蜘蛛池模板: 博白县| 晋城| 威信县| 临邑县| 漯河市| 拜城县| 齐齐哈尔市| 广平县| 廉江市| 保山市| 和静县| 梁河县| 华坪县| 丰顺县| 池州市| 偃师市| 平度市| 万载县| 平陆县| 腾冲县| 清丰县| 琼中| 泌阳县| 历史| 肥城市| 福海县| 绥芬河市| 永宁县| 双鸭山市| 昌江| 长治县| 进贤县| 延津县| 临湘市| 平凉市| 德兴市| 万年县| 沂南县| 卢氏县| 西华县| 长丰县|