|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。
很多开辟职员都很熟习墨菲法例的一个例子:他们发明在消费了大批工夫确保使用程序在开辟情况中疾速和天真以后,在公布到临盆情况的时分功能会难以想象的年夜幅下落。更糟的是,使用程序平常运转一般,老板大概主要客户操纵使用的时分却反响迟缓。具体的日记纪录和剖析关于追踪这些间歇性的功能瓶颈尤其主要。
但是,现今天下充斥了面向服务的架构和散布式的使用,查找功能瓶颈对应的组件极为坚苦。思索一个典范Web2.0作风使用的服务器真个罕见场景:
服务器吸收一个Web哀求,分发给卖力发生呼应的组件。
该哀求大概必要经由过程LDAP服务器举行平安考证。
把持器组件对数据库实行查询。
把持器组件也会挪用第三方Web服务。
把持器组件将一切取得的数据举行汇总,构成一系列营业对象用于显现。
营业对象被展示,呼应内容传回用户扫瞄器。
运转于扫瞄器的AJAX代码发生其他的哀求,与服务器端交互。
关于“为什么我的网页反响愚钝?”如许成绩的回覆必要研讨多个组件和实行路径,同时必要临盆情况中一切使用组件的具体功能数据。
Perf4J是一款开源工具包,用于增加Java服务器端计时期码、纪录日记和监控了局。关于熟习诸如log4j日记框架的开辟职员来讲,能够如许类比:
Perf4JistoSystem.currentTimeMillis()aslog4jistoSystem.out.println()
怎样使用这个类比了解Perf4J呢?回忆一下已往还没有普遍使用Java日记纪录框架的糟光阴,我们年夜多半人怎样增加日记纪录语句。我们利用System.out.println()作为一种“大略的调试器”,使用这类快速但糟的体例纪录信息。我们很如意识到,这是不敷的。我们但愿把纪录语句输入到专门的日记文件中(假如大概的话,多个分歧文件),大概能够天天掩盖日记。我们必要可以设定主要性的分歧级别以输出不必的日记语句,能够选择在不改动代码的情形下在特定情况下只输入特定日记,大概在分歧情况中改变日记格局。因而,log4j供应的丰厚功效来历于原始设法,是一种“更好的”System.out.println()日志语句。
相似的,当Java老手发明他们必要增加功能监控代码时,他们常常如许做:
long start = System.currentTimeMillis();
// execute the block of code to be timed
log.info("ms for block n was: " + (System.currentTimeMillis() - start));
可是很快,这些开辟职员发明他们必要更多的信息,综合的功能统计数据如均匀、最小、最年夜、尺度差和特准时间段内每秒的事件处置量。他们但愿将这些数据绘成及时图表监控运转服务器上的成绩,大概经由过程JMX输入功能目标以便于启动监控器在功能下落的情形下收回警报。别的,他们还但愿计时语句能够和相似log4j的框架共同利用。
<p>
没有那个大公司会傻了吧唧用.net开发大型项目,开发了,那等于自己一半的生命线被微软握着呢。而.net不行,限制在window系统,又是捆绑,鄙视微软之! |
|