專注應(yīng)用,關(guān)注發(fā)展,開(kāi)拓創(chuàng)新

          <-------------------------------------------------------------------& 珍惜生命 . 善用時(shí)間 . 把握未來(lái) . 創(chuàng)造價(jià)值。

          BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
            11 Posts :: 17 Stories :: 10 Comments :: 0 Trackbacks

          j2se?5.0使用?Java?Management?Extensions?(JMX)來(lái)管理和監(jiān)控java平臺(tái)。
          我們以一個(gè)例子來(lái)測(cè)試一下:

          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. }

          運(yùn)行結(jié)果:

          ---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) 評(píng)論(0)  編輯  收藏 所屬分類: java高級(jí)
          主站蜘蛛池模板: 新泰市| 汶上县| 和田县| 镇江市| 仪征市| 长沙市| 米脂县| 永德县| 大兴区| 焉耆| 巨野县| 鲁甸县| 临湘市| 抚松县| 前郭尔| 镇远县| 长岛县| 阜新市| 朝阳区| 兴宁市| 青浦区| 阿克陶县| 沙雅县| 镇安县| 光泽县| 道真| 赣榆县| 楚雄市| 武安市| 惠安县| 天峨县| 女性| 图们市| 海南省| 辰溪县| 大渡口区| 永昌县| 泸西县| 西充县| 渝北区| 株洲市|