JAVA网页编程之利用Perf4j简化使用剖析仓酷云
对于一个大型项目,如果用java来作,可能需要9个月,并且可能需要翻阅10本以上的书,但如果用ruby来作,3个月,3本书就足够了,而.net网页编程也不过3,4本书足以,这就是区别。假如想剖析Java使用,有良多工具可供选择——但你想太过析使用能够像增加日记那末复杂么?这就是Perf4j项目标方针地点:好像log4j相似于System.out.println()一样,Perf4J相似于System.currentTimeMillis()。Perf4J供应的良多特征都使人线人一新:
[*]用于计时的复杂的中断观察(stopwatch)机制。
[*]用于剖析日记文件的命令行工具,能够天生聚合统计和功能图表
[*]轻松集成年夜多半罕见的日记框架和门面:log4j、java.util.logging、ApacheCommonsLogging及SLF4J。
[*]客户化的log4jappenders,能够在使用运转时天生统计和图表(不久还会供应客户化的java.util.logging处置器)。
[*]能够将功能统计表露为JMX属性,当统计超越指定极限时发送关照。
[*]用于展示Web使用功能图表的Servlet。
[*]供应了@Profiled注解和一套客户化的方面(aspect),在处置AOP框架如AspectJ或SpringAOP时能够天真拔出计时语句。
[*]可扩大的架构
InfoQ有幸采访了Perf4j项目标向导者AlexDevine,他谈到了开辟Perf4j的启事:
在熟悉到功能跟踪和办理成绩会严峻影响到公司的每一个项目(现实上会影响到几近一切的基于服务器的、散布式使用)后,我们决意构建并开辟一个尺度的功能库,最初就出生了Perf4J。“Perf4j能办理哪些特别的功能成绩呢”?
Perf4J十分合适于散布式、面向服务的使用的功能成绩跟踪。比方,用户点击Homeaway上的某个搜刮页面后就会收回对Web服务器的一个挪用,该Web服务器又会挪用数据库,同时还会经由过程HTTP挪用搜刮服务和告白服务器。搜刮服务自己会将各个搜刮结点天生的了局聚合起来。假如在产物情况下功能呈现了成绩,我们能够经由过程Perf4j轻松疾速的查明出成绩的组件。这招致了另外一个成绩“Perf4j能够用在产物情况中么?”
Perf4J明白定位于产物情况中。现实上,良多时分在每一个阶段上统统都很好,但放到了产物情况下就会呈现各类成绩,在呈现年夜的功能成绩前就延迟做好筹办关于成绩的跟踪是年夜有裨益的。关于功能开支,Alex说到:
其开支与日记相似,就像在代码前后利用System.currentTimeMillis()并纪录日记一样,你能够在经由过程入手下手和中断StopWatch来完成这统统。如许相似于日记,其消费终极取决于附加的appenders。AsyncCoalescingStatisticsAppender仅是将日记动静压进到行列中并由独自线程中downstreadappenders的掏出,如许当这些appenders完成处置后不会影响到主线程的实行工夫。别的,假如经由过程加载工夫(load-time)来利用@Profiled注解,你能够界说运转中所剖析的办法,在这类情形下,那些不做剖析的办法就无需任何分外的设置。关于将来Alex说到:
我们想对那些没有StopWatch或@Profiled注解的办法也举行运转时剖析。也就是说开辟者能够在aop.xml或Spring设置文件中指定要剖析的办法。如许就能够剖析第三方库(他们其实不晓得Perf4J),并且无需在源代码中利用剖析语句了。能够从http://perf4j.org下载Perf4j。
检察英文原文:ProfilingJustGotEasierWithPerf4j
本文出自:http://www.infoq.com/cn/news/2009/02/perf4j
通过视频学习比传统的大课堂学习更适合成人化的学习规律。有人说大课堂气氛好,学习氛围浓,热闹,可以认识很多人。 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 是一种语言,用以产生「小应用程序(Applet(s)) 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 是一种语言,用以产生「小应用程序(Applet(s)) 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
页:
[1]