灵魂腐蚀 发表于 2015-1-18 11:02:14

发布一篇经由过程日记监控并搜集Java使用程序功能数据

唉!都是钱闹的1.Swing和.net开发比较------从市场份额看.net开发主要占据大部分的中小型和中型的的桌面开发,原因是它封装了很多工具
弁言
体系日记是使用程序成绩诊断及运转保护的主要工具。Logback、Log4j是经常使用于Java平台的日记纪录API.今朝年夜部分产物只是将体系主要参数、形态的变更及非常信息经由过程日记输入。本文将要先容的Perf4j是一款专门用于Java服务器端代码计时、纪录日记和监控了局的开源工具包。Perf4j对经常使用日记工具包举行了扩大,可以将失掉的原始功能数据举行统计并公布到可定制的输入源,如把持台、日记文件、JMX等。Perf4j供应了多种体例与Java代码集成,开辟和体系维职员可以天真地将Perf4j的API嵌进到各类分歧架构的使用程序中。
Perf4j今朝依托于开源项目合作平台Codehaus举行文档及代码办理,下一步该项目企图迁徙到Github平台,以便更多的社区及开辟职员能够介入到开辟及保护中来。Perf4j接待利用者提出新的功效需求而且勉励将定制或扩大的代码奉献到Perf4j源码中。本文中示例代码利用的Perf4j版本是0.9.16,读者需鄙人载类包或设置Maven时寄望。
浏览文章之前,您要对Java注解、JMX、面向方面编程有一些懂得。出格是JConsole的利用及SpringAOP的设置体例要较为熟习。
文章起首阐明在何种使用场景下应优先思索利用Perf4j。然后是详细解说Pef4j与使用程序的集成体例。最初会先容怎样将搜集的数据天生便于剖析的可视化图表。
使用场景
在Java平台上碰到功能成绩时,如CPU占用太高、体系呼应缓慢,一般的剖析办法是利用JVM分析工具在体系瓶颈临界点前一段工夫抓取CPU占用散布,再对CPU占用率最高的几个办法排查。Perf4j的上风在于可以延续跟踪统计所存眷功效代码的实行效力,关于前后两个版本呈现较年夜差别的办法举行深切剖析,能够在开辟周期中尽早发明成绩。Perf4j还能够用在产物情况中,从运营的初期入手下手,将其统计的数据做为系统的功能和安康目标临时监测。
首选Perf4j的使用场景:
Java当地代码挪用(JNI)
散布式体系、集群部署
面向服务系统布局(SOA)
远程办法挪用(RMI)
开辟职员必需将当地办法、远程办法及Webservices的功能成绩断绝出来,以防搅扰对Java使用程序自己的剖析。经由过程日记纪录则是最复杂的体例;接纳散布式架构或集群部署的体系绝对庞大,分歧的收集情况、基本硬件和操纵体系的差异、假造主机中资本与设置的差别等形成很难接纳一致的工具来监测代码级其余功能目标。而日记纪录则能够轻松到场到各种程序中,且是资本与工夫本钱最低的体例。Perf4j供应了CSV格局的转换工具,开辟职员能够借助第三方工具便利地将统计了局汇总剖析。
集成到使用程序
上面将分两种体例详细报告怎样使用Per4j供应的API。在实践的项目中,应依据现有的程序框架及监测目标天真选择。别的,针对WebSphere使用服务器的自有日记体系,还必需接纳分外的措施来确保Perf4j的一般事情。
对代码段计时
Perf4j中org.perf4j.StopWatch是全部API中的基本工具。这是一个封装优秀的计时器。能够把StopWatch嵌进到代码中任何中央。这类体例常常使得庞大的办法失掉分化,从而有益于准确定位成绩的本源。以下经由过程清单1和清单2来先容其详细用法。
清单1.StopWacth基础用法

publicstaticvoidbasicStopWatch()throwsInterruptedException{
//创立StopWacth时入手下手计时,以后也能够用stopWatch.start()从头设定计时入手下手工夫点
StopWatchstopWatch=newStopWatch("TransactionA");
//实行必要计时的代码
Thread.sleep(2*1000L);
Stringresult=stopWatch.stop();
System.out.print(result);
}清单1中最初输入的了局示例:starttimetag。在机关函数中设定tag用来辨别分歧的营业逻辑,能够把它当作是功能剖析中的事件(Transaction)。
假如必要将多段代码分隔统计,可接纳LoggingStopWatch类的lap()办法界说多个事件。
清单2.LoggingStopWatch用法

publicstaticvoidloggingStopWacth()throwsInterruptedException{
LoggingStopWatchstopWatch=newLoggingStopWatch();
//设定阈值,小于此阈值的了局将不会被纪录上去
stopWatch.setTimeThreshold(1*1000L);
Thread.sleep(2*1000L);
//中断以后计时,入手下手新的肇端工夫点
stopWatch.lap("TransactionB");
Thread.sleep(500L);
stopWatch.stop("TransactionC");
}<p>
再说第三点:我并没有提到服务器也要整合,然后是IDE,一个好的IDE能够200%提高开发的速度,就说图形方面:你是经过简单托拽和点击就能实现功能好那。

愤怒的大鸟 发表于 2015-1-20 12:55:25

是一种为 Internet发展的计算机语言

简单生活 发表于 2015-1-27 08:25:35

一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从

爱飞 发表于 2015-2-5 03:13:43

当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?

乐观 发表于 2015-2-11 02:42:56

Java是一种计算机编程语言,拥有跨平台、面向对java

admin 发表于 2015-3-1 19:43:54

另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。

山那边是海 发表于 2015-3-10 22:38:22

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展

透明 发表于 2015-3-17 11:37:41

自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。

海妖 发表于 2015-3-24 09:15:52

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
页: [1]
查看完整版本: 发布一篇经由过程日记监控并搜集Java使用程序功能数据