性能监控诊断优化

2009-10-14 18:10

JProbe Suite支持下列应用服务器:

2009-10-14 17:48

垃圾收集就是自动释放不再被程序所使用的对象的过程。当一个对象不再被程序所引用时,它所引用的堆空间可以被回收,以便被后续的新对象所使用。垃圾收集器必须能够断定哪些对象是不再被引用的,并且能够把它们所占据的堆空间释放出来。如果对象不再被使用,但还有被程序所引用,这时是不能被垃圾收集器所回收的,此时就是所谓的“内存泄漏”。监控应用程序是否发生了内存泄漏,有一个非常优秀的监控工具推荐给大家——Quest公司的JProbe工具,使用它来观察程序运行期的内存变化,并可产生内存快照,从而分析并定位内存泄漏的确切位置,可以精确定位到源码内.

2009-10-14 17:35

最近发现一部分java写的解析xml程序运行的很慢,使用jprobe跑了一下,搞了一上午,发现问题的所在,检索xml节点时,XPath要进行词法分析,浪费时间,如果是固定的还好,但是每次生成的xpath都不一样,静态编译xpath表达式是不可能的。还好里面的element不是很多,循环里面嵌套,遍历一次就可以解决,速度提高了5000多倍。

事后想了一下,如果看程序定位的话,时间应该更少,速度更快,这还是jprobe定位准确的原因,如果定位不准确,耗时会更多。

2009-10-13 17:35

 

    现在网管软件市场空前繁荣,各种层次、各个方面的产品林林总总。有国内厂商的产品,有国外厂商的产品,有侧重主机管理的,有侧重网络管理的,有专职于流程的,有专注于监控的,根据什么选择呢?依我看,不外乎下面几个方面:

    1. 满足现阶段需求,考虑未来需要

2009-10-13 17:03

什么是网络拓扑

2009-10-13 16:24

       是的,异常开销很大。那么,这是不是就意味着您不该使用异常?当然不是。但是,何时应该使用异常,何时又不应该使用异常呢?不幸的是,答案不是一下子就说得清的。

我们要说的是,您不必放弃已经学到的好的 try-catch 编程习惯,但是使用异常时可能会遇到麻烦,创建异常就是一个例子。当创建一个异常时,需要收集一个栈跟踪(stack track),这个栈跟踪用于描述异常是在何处创建的。还记得当代码中抛出一个意料之外的异常时,您所看到的输出来的栈跟踪吗?像下面这个:

2009-10-13 11:34

SQL Server监控表空间的 I/O 比例

  select df.tablespace_name name,df.file_name "file",f.phyrds pyr,

  f.phyblkrd pbr,f.phywrts pyw, f.phyblkwrt pbw

  from v$filestat f, dba_data_files df

  where f.file# = df.file_id

2009-10-13 11:32

监控事例的等待
select event,sum(decode(wait_Time,0,0,1)) "Prev",

  sum(decode(wait_Time,0,1,0)) "Curr",count(*) "Tot"

  from v$session_Wait

  group by event order by 4;
 

2009-10-13 11:26

union 与 union all
  UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。而UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。从效率上说,UNION ALL 要比UNION快很多. 

页面