十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
应用程序很高兴对所有这些活动一无所知。它只知道自己的虚拟地址空间。但是,如果当前在主存中的页面集(称为 驻留集)少于实际要使用的页面集(称为 工作集),应用程序的性能很快就会显著降低。(不幸的是,本文中您将看到,我们要讨论的工具常常交换使用这两个术语,尽管它们指的是完全不同的事物。) Task Manager 和 PerfMon 我们首先考察两种最常见的工具:Task Manager 和 PerfMon。这两个工具都随 Windows 一起提供,因此由此起步比较容易。 Task Manager Task Manager 是一种非常见的 Windows 进程监控程序。您可以通过熟悉的 Ctrl-Alt-Delete 组合键来启动它,或者右击任务栏。Processes 选项卡显示了最详细的信息,如图 2 所示。 图 2. Task Manager 进程选项卡 图 2 中显示的列已经通过选择 View -- Select Columns 作了调整。有些列标题非常含糊,但可以在 Task Manager 帮助中找到各列的定义。和进程内存使用情况关系最密切的计数器包括: Mem Usage(内存使用):在线帮助将其称为进程的工作集(尽管很多人称之为驻留集)——当前在主存中的页面集。但是这个数值包含能够和其他进程共享的页面,因此要注意避免重复计算。比方说,如果要计算共享同一个 DLL 的两个进程的总内存占用情况,不能简单地把“内存使用”值相加。 Peak Mem Usage(内存使用高峰值):进程启动以来 Mem Usage(内存使用)字段的最大值。 Page Faults(页面错误):进程启动以来要访问的页面不在主存中的总次数。 VM Size(虚拟内存大小):联机帮助将其称为“分配给进程私有虚拟内存总数。”更确切地说,这是进程所 提交的内存。如果进程保留内存而没有提交,那么该值就与总地址空间的大小有很大的差别。 虽然 Windows 文档将 Mem Usage(内存使用)称为工作集,但在该上下文中,它实际上指的是很多人所说的驻留集(resident set),明白这一点很重要。您可以在 Memory Management Reference 术语表(请参阅 参考资料)中找到这些术语的定义。 工作集 更通常的含义指的是一个逻辑概念,即在某一点上为了避免分页操作,进程需要驻留在内存中的那些页面。 PerfMon 随 Windows 一起提供的另一种 Microsoft 工具是 PerfMon,它监控各种各样的计数器,从打印队列到电话。PerfMon 通常在系统路径中,因此可以在命令行中输入 perfmon 来启动它。这个工具的优点是以图形化的方式显示计数器,很容易看到计数器随时间的变化情况。 请在 PerfMon 窗口上方的工具栏中单击 + 按钮,这样会打开一个对话框让您选择要监控的计数器,如图 3a 所示。计数器按照 性能对象分成不同的类别。与内存使用关系最密切的两个类是 Memory 和 Process。选中计数器然后单击 Explain 按钮,就可以看到计数器的定义。说明出现在主对话框下方弹出的单独的窗口中。
北碚ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
当有问题出现时,许多开发人员可能会比较盲目的用这些工具来试探性定位问题,而大多数情况下,这种试探会无功而返。因为这些分析工具主要是侧重Java单方面的分析,比如该系统调用第三方API,如果第三方API有问题,是无法监控到的。还有像文件、DB资源的访问也是是无法监控到的。
除了JAVA自带的监控工具外,我们尝试了第三方的监控工具透视宝,功能相对全面,且易操作。
在功能方面,透视宝都包括:查看执行最慢的10个元素,包括元素执行次数、持续时长和占用时长百分比;查看HTTP请求参数,包括请求的响应状态、链接页面、具体的请求参数及返回结果;查看代码执行堆栈的详细树状信息,包括每个方法的计算时间、总耗时和被调用的次数,您能直接看到特殊标识的最慢方法;查看涉及SQL语句的总耗时排序,包括SQL执行总耗时、执行次数和具体的查询语句;第三方API调用。
通过JMX技术来监控Oracle的JVM
2. 阿里巴巴数据库连接池(具有数据连接监控功能)
Druid是一个JDBC组件,它包括三部分:
DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。
DruidDataSource 高效可管理的数据库连接池。
SQLParser
Druid可以做什么?
1) 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。
2) 替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。
3) 数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。
4) SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。
扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter-Chain机制,很方便编写JDBC层的扩展插件。
可以学习软件包 java.lang.management
提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。
ClassLoadingMXBean
用于 Java 虚拟机的类加载系统的管理接口。
CompilationMXBean
用于 Java 虚拟机的编译系统的管理接口。
GarbageCollectorMXBean
用于 Java 虚拟机的垃圾回收的管理接口。
MemoryManagerMXBean
内存管理器的管理接口。
MemoryMXBean
Java 虚拟机内存系统的管理接口。
MemoryPoolMXBean
内存池的管理接口。
OperatingSystemMXBean
用于操作系统的管理接口,Java 虚拟机在此操作系统上运行。
RuntimeMXBean
Java 虚拟机的运行时系统的管理接口。
ThreadMXBean
Java 虚拟机线程系统的管理接口。
更多请访问(bug315)
SWT Win32 Extension 是Eclipse类库SWT的Win32本地原生扩展.
本项目提供了一个软件开发工具库,能够让您使用Java语言开发原生的Windows应用程序而不需要编写额外的JNI代码。使用SWT Win32 Extension,您将不需要创建原生的动态链接库来调用操作系统动态链接库的系统API或者方法。您仅仅需要做的就是编写Java代码, SWT Win32 Extension来负责剩下的部分。SWT Win32 Extension提供了一系列的功能使您的应用程序看上去和Win32本机程序别无二致。
窗口装饰功能: 提供窗口置顶,透明,闪动等功能。
自定义窗口: 创建不规则的窗口。
访问Windows注册表。
系统文件夹: 获取系统特殊文件加的路径和图标。
系统快捷方式: 管理系统快捷方式。
系统相关信息: 收集系统CPU,内存,环境变量等相关信息。
系统会话: 提供关机,休眠,重启,注销等功能。
系统IO及网络功能: 提供磁盘和网络相关信息。
活动桌面功能: 管理Windows活动桌面。
系统钩子: 注册和卸载系统钩子,能够拦截和处理系统事件。
窗口系统菜单: 管理窗口菜单。用户可以自定义系统菜单和处理菜单事件。
Ole 控件: 提供对一些常用控件的封装,比如flash。 值得一提的是,您能够访问SWT提供的所有功能,因为SWT Win32 Extension是从SWT派生出来的。
其实首先你可以先使用监控内存工具,来监控下,如果内存消耗不是很大,其实就不用那么麻烦了。如果实在要加个内存监控程序,可以使用Runtime中的MaxMemory、TotalMemory、FreeMemory来实现。注意这些都是JVM的内存,请不要和系统的内存混淆。另外如果要实时监控,必须还得弄个线程类。大致思路是这样,至于内存溢出,你可以设定一个内存阈值,比如说15%的剩余内存设置,就报内存即将溢出的错误。