- 浏览: 640618 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
liuche20083736:
非常好
从问题看本质: 研究TCP close_wait的内幕 -
xiaopohai85707:
优化算法与原来需求不符
过滤字符的性能调优?挤一挤还是有的 -
kmy_白衣:
生成的area图有时候 标签的数值和图标上看上去的数值不一致。 ...
OpenFlashChart2之恶心文档 -
tom&jerry:
大神,请教一个问题,按名称排序为何无效,用的2.4.3 XPA ...
深入浅出jackrabbit之十三 查询之AST和QT -
jd2bs:
改成精确匹配可以了< filter-mapping &g ...
细谈Ehcache页面缓存的使用
/**
*作者:张荣华(ahuaxuan)
*2007-8-15
*转载请注明出处及作者
*/
前两天在看Spring内置的拦截器的时候,发现了一个之前没有注意的类:org.springframework.aop.interceptor.JamonPerformanceMonitorInterceptor,好奇心促使我上网查了一下这个jamon。大概看了一下之后发现这个玩意还真挺好用的而且挺重要的,而且现在国内对它的介绍也很少,所以写了一篇文章和大家分享。
一,Jamon简介:
Jamon的全名是:Java Application Monitor。它是一个小巧的,免费的,高性能的,线程安全的性能监测工具。它可以用来测定系统的性能瓶颈,也可以用来监视用户和应用程序之间的交互情况。 Jamon主要是用来检测jee的应用程序。它最新的版本是2.1,可以用在1.4以上的jdk上。
二,将jamon导入到你的应用程序中去
首先下载jamon的开发包,见我的附件,同时你也可以去Sourceforge上自己下载。Sourceforge的下载地址为http://jamonapi.sourceforge.net。解压之后可以得到一个jar包和一个war包。jar包是自己会用到的,而war包是一个例子(不要小看这个例子,待会也要把它导入到项目中)。把war包之间丢到服务器上,访问:localhost:8080/jamon就可以看到这个例子了,这个例子是一个简单的性能监控系统。
接着把例子中的所有的包都导入到项目中,并把war包中的jsp和images还有css都考到项目中,比如新建一个目录叫monitor(它和WEB-INF是同级目录)。
三,正确配置自己的应用
我们在性能监测的时候最监测的就是页面的访问率和类中方法的访问率。所以在这一部分主要讲解一下如何监测自己的页面和类中方法的访问。
1, 检测自己的页面访问率
首先我们需要在web.xml中添加一个filter,这个filter就是用来判断哪些页面需要被监视的,如下所示:
这个类看上去很简单,其实也挺简单的,就是得到uri,然后把它注册到MonitorFactory类中。这样只要我们去访问刚才创建的monitor目录下的jsp就可以看到性能监测页面了。
2, ,接下来我们看看在使用spring的情况下如何监测一个bean的方法调用。Spring也提供了对Jamon的支持(spring支持的东西还真多啊),也就是文章开头提出的那个拦截器,为了给我们的bean加上拦截器,我们在spring的applicationcontext配置文件中加入如下语句:
上面这个是典型的spring的aop的配置,如果对spring的aop配置不了解的可以去看一下spring中文文档,当然如果不想了解的话即使直接把这段配置拷到自己的项目中也是可以直接使用的。
还有一个步骤就是在你的log4j.properties中加入这句代码:
如果没有这一行,那么这个拦截器是不会把方法调用的信息向MonitorFactory注册的。
只需要这些步骤,userservice中的方法在调用的时候就可以被拦截,然后将其注册到MonitorFactory中去了。
所有的配置完成之后我们来看一下效果吧:
http://www.iteye.com/topics/download/b2bac96e-6c18-4340-b7e0-f84c7bb6adca从这个图上我们可以看到,所有页面被访问的次数,UserService中的getAllUsers被调用的次数,最右边的是访问时间。这只是整个图的一部分,当然这个页面中也包括每一个页面被访问的次数和第一次访问的时间等等。下载附件运行,就可以看到所有的页面了。
三,总结
根据以上的步骤,我们就可以监测我们的程序了,应用程序中哪些页面被访问的多,哪些页面被访问的少,哪些方法被访问的多,哪些方法被访问的少,以及访问高峰期集中在什么时间等等,有了这些参数,我们更可以有针对性的对应用程序进行优化了,比如说某个页面访问比较频繁,我就可以用ehcache或oscache给这个页面做一个缓存。如果某个方法的访问比较频繁那就看看这个方法能否进一步优化,是需要异步,还是需要缓存,还是需要其他等等,总之有了jamon可以给我们带来更多的便捷,既可以让我们知道我们的客户的行为,也可以让我们知道我们开发的程序的“能力”。
其实本文提供的只是对页面和方法调用的监控,但是jamon可以提供更多功能,比如说sql语句的监控等等,这就需要我们共同去发掘了。
附件中包括了一个easywebwork的例子,我把jamon导入到这个例子工程中去,大家可以直接下载运行观看效果。Easywebwork是一个旨在减少webwork2.2.x系列的xml配置文件的项目,
如果对这个主题感兴趣请到
http://www.iteye.com/topic/91614
http://www.iteye.com/topic/93814
参加讨论。
把例子下面的WEB-INF/lib/*.jar放到你的项目里就OK了
呵呵,那么简单money就来了啊。
呵呵,我觉得你没有明白我说的意思,我并没有说money能很简单的就来了,相反,我觉得很难,因为寻找市场是很困难的,尤其对我们程序员来说。
因为即使你看到用户的访问记录你能知道用户的需求吗,你好像觉得分析用户的需求是一件很简单的事情,所以money能来得很简单,问题是分析用户需求是一件很简单得事情吗,假设中国有2亿网民,你能分析出其中1千万得需求,你的money就来了,说白了就是市场,用户的需求不就是市场吗,分析市场如果很容易,那程序员都发了。所以即使看到监测结果你能知道别人需要什么吗?看到几个图表你能知道市场在哪里吗,如果你知道,然后去做这个需求,这个市场,那么你的money就来了。
我的意思是真正的分析性能瓶颈,优化程序,有页面访问性能不是关键,关键的是方法的性能,这样才能找到真正的瓶颈所在
真正分析性能瓶颈也不能只靠这个,事实上程序员都回利用综合手段,loadrunner,jmeter,等等其他监控工具应该综合时候,只有这个才能事半功倍,我好像也没有说页面访问性能是关键吧。而且jamon也是可以监控方法的调用次数的。
呵呵,那么简单money就来了啊。
分析什么页面受欢迎非常的简单,一个方法是分析访问日志,一个方法是加Filter,就不说多如牛毛的站点统计工具了(google分析等)
我的意思是真正的分析性能瓶颈,优化程序,有页面访问性能不是关键,关键的是方法的性能,这样才能找到真正的瓶颈所在
jamon的用途很大的,监测页面的访问可以得到两个结果,主要的一个不是用来对比性能,而是观察哪些页面比较受用户欢迎,通过这个监测结果我们可以分析用户的行为,通过它我们就知道用户需要什么样的东西,什么样的东西比较受欢迎,这样能使我们的东西更加符合用户的需要,做到这一点money就来了
确实如化。虽然没用过。
jamon的用途很大的,监测页面的访问可以得到两个结果,主要的一个不是用来对比性能,而是观察哪些页面比较受用户欢迎,通过这个监测结果我们可以分析用户的行为,通过它我们就知道用户需要什么样的东西,什么样的东西比较受欢迎,这样能使我们的东西更加符合用户的需要,做到这一点money就来了
数据默认情况下貌似是保存到内存中,但是可以保存到数据库中,
http://jamonapi.sourceforge.net/
这个是它的文档,大家有兴趣来讨论讨论,之前发这个贴的时候讨论的人不多,我就以为大家对这个性能监控这方面不是很感兴趣,或者也说明它用途不是很大,所以我也没有跟进了。
那是不是意味着instrumentation也是一个规范了?还是说jdk6已经实现了?
你的问题找到了吗,是不是项目配置有问题啊
*作者:张荣华(ahuaxuan)
*2007-8-15
*转载请注明出处及作者
*/
前两天在看Spring内置的拦截器的时候,发现了一个之前没有注意的类:org.springframework.aop.interceptor.JamonPerformanceMonitorInterceptor,好奇心促使我上网查了一下这个jamon。大概看了一下之后发现这个玩意还真挺好用的而且挺重要的,而且现在国内对它的介绍也很少,所以写了一篇文章和大家分享。
一,Jamon简介:
Jamon的全名是:Java Application Monitor。它是一个小巧的,免费的,高性能的,线程安全的性能监测工具。它可以用来测定系统的性能瓶颈,也可以用来监视用户和应用程序之间的交互情况。 Jamon主要是用来检测jee的应用程序。它最新的版本是2.1,可以用在1.4以上的jdk上。
二,将jamon导入到你的应用程序中去
首先下载jamon的开发包,见我的附件,同时你也可以去Sourceforge上自己下载。Sourceforge的下载地址为http://jamonapi.sourceforge.net。解压之后可以得到一个jar包和一个war包。jar包是自己会用到的,而war包是一个例子(不要小看这个例子,待会也要把它导入到项目中)。把war包之间丢到服务器上,访问:localhost:8080/jamon就可以看到这个例子了,这个例子是一个简单的性能监控系统。
接着把例子中的所有的包都导入到项目中,并把war包中的jsp和images还有css都考到项目中,比如新建一个目录叫monitor(它和WEB-INF是同级目录)。
三,正确配置自己的应用
我们在性能监测的时候最监测的就是页面的访问率和类中方法的访问率。所以在这一部分主要讲解一下如何监测自己的页面和类中方法的访问。
1, 检测自己的页面访问率
首先我们需要在web.xml中添加一个filter,这个filter就是用来判断哪些页面需要被监视的,如下所示:
<filter> <filter-name>JAMonFilter</filter-name> <filter-class>com.easywebwork.filter.EasyPageMonFilter</filter-class> </filter> <filter-mapping> <filter-name>JAMonFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>接下来我们看看这个filter的写法:
/** * @author 张荣华(ahuaxuan) * * @since 2007-8-13 */ public class PageMonFilter extends JAMonFilter{ private static final long serialVersionUID = 5746197114960908454L; public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { Monitor allPages = MonitorFactory.start(new MonKeyImp("org.easywebwork.allPages",getURI(request),"ms.")); //这里就是我们要监视的所有的页面的配置 Monitor monitor = MonitorFactory.start(getURI(request)); //这里就是我们要监视的某个页面的配置 try { filterChain.doFilter(request, response); } finally { monitor.stop(); allPages.stop(); } } protected String getURI(ServletRequest request) { if (request instanceof HttpServletRequest) { return ((HttpServletRequest) request).getRequestURI(); } else { return "Not an HttpServletRequest"; } } private FilterConfig filterConfig = null; }}
这个类看上去很简单,其实也挺简单的,就是得到uri,然后把它注册到MonitorFactory类中。这样只要我们去访问刚才创建的monitor目录下的jsp就可以看到性能监测页面了。
2, ,接下来我们看看在使用spring的情况下如何监测一个bean的方法调用。Spring也提供了对Jamon的支持(spring支持的东西还真多啊),也就是文章开头提出的那个拦截器,为了给我们的bean加上拦截器,我们在spring的applicationcontext配置文件中加入如下语句:
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="beanNames"> <list> <value>userService</value> </list> </property> <property name="interceptorNames"> <list> <value>jamonInterceptor</value> </list> </property> </bean> <bean id="jamonInterceptor" class="org.springframework.aop.interceptor.JamonPerformanceMonitorInterceptor"> </bean>
上面这个是典型的spring的aop的配置,如果对spring的aop配置不了解的可以去看一下spring中文文档,当然如果不想了解的话即使直接把这段配置拷到自己的项目中也是可以直接使用的。
还有一个步骤就是在你的log4j.properties中加入这句代码:
log4j.logger.org.springframework.aop.interceptor.JamonPerformanceMonitorInterceptor = TRACE
如果没有这一行,那么这个拦截器是不会把方法调用的信息向MonitorFactory注册的。
只需要这些步骤,userservice中的方法在调用的时候就可以被拦截,然后将其注册到MonitorFactory中去了。
所有的配置完成之后我们来看一下效果吧:
http://www.iteye.com/topics/download/b2bac96e-6c18-4340-b7e0-f84c7bb6adca从这个图上我们可以看到,所有页面被访问的次数,UserService中的getAllUsers被调用的次数,最右边的是访问时间。这只是整个图的一部分,当然这个页面中也包括每一个页面被访问的次数和第一次访问的时间等等。下载附件运行,就可以看到所有的页面了。
三,总结
根据以上的步骤,我们就可以监测我们的程序了,应用程序中哪些页面被访问的多,哪些页面被访问的少,哪些方法被访问的多,哪些方法被访问的少,以及访问高峰期集中在什么时间等等,有了这些参数,我们更可以有针对性的对应用程序进行优化了,比如说某个页面访问比较频繁,我就可以用ehcache或oscache给这个页面做一个缓存。如果某个方法的访问比较频繁那就看看这个方法能否进一步优化,是需要异步,还是需要缓存,还是需要其他等等,总之有了jamon可以给我们带来更多的便捷,既可以让我们知道我们的客户的行为,也可以让我们知道我们开发的程序的“能力”。
其实本文提供的只是对页面和方法调用的监控,但是jamon可以提供更多功能,比如说sql语句的监控等等,这就需要我们共同去发掘了。
附件中包括了一个easywebwork的例子,我把jamon导入到这个例子工程中去,大家可以直接下载运行观看效果。Easywebwork是一个旨在减少webwork2.2.x系列的xml配置文件的项目,
如果对这个主题感兴趣请到
http://www.iteye.com/topic/91614
http://www.iteye.com/topic/93814
参加讨论。
- JamonSample.rar (3.7 MB)
- 描述: 由于上传文件大小有限制,所以需要同学们自己添加一下jar包: spring,common-logging,log4j,common-collections activation, common-lang
- 下载次数: 879
- lib.rar (3.3 MB)
- 描述: 第二组包包括 spring,common-logging,log4j,common-collections activation, common-lang
- 下载次数: 526
评论
14 楼
seamankwok
2007-11-22
iamjxc 写道
奇怪, 为什么例子能够运行,但是拷贝到项目里就报错呢?
以menu.jsp为例, 下面的代码中报错:
// Enable/Disable jamon as a whole and the proxy capability. ResultSets will be disabled by default.
if ("Enable Monitoring!".equals(enableAll)) {
MonitorFactory.enable();
MonProxyFactory.enableAll(true);
MonProxyFactory.enableResultSet(false);
}
说是下面的函数不存在:
MonitorFactory.enable();
还有很多方法不存在.
打开MonitorFactory类,也没有看到enable方法.
以menu.jsp为例, 下面的代码中报错:
// Enable/Disable jamon as a whole and the proxy capability. ResultSets will be disabled by default.
if ("Enable Monitoring!".equals(enableAll)) {
MonitorFactory.enable();
MonProxyFactory.enableAll(true);
MonProxyFactory.enableResultSet(false);
}
说是下面的函数不存在:
MonitorFactory.enable();
还有很多方法不存在.
打开MonitorFactory类,也没有看到enable方法.
把例子下面的WEB-INF/lib/*.jar放到你的项目里就OK了
13 楼
ahuaxuan
2007-09-05
cherami 写道
引用
jamon的用途很大的,监测页面的访问可以得到两个结果,主要的一个不是用来对比性能,而是观察哪些页面比较受用户欢迎,通过这个监测结果我们可以分析用户的行为,通过它我们就知道用户需要什么样的东西,什么样的东西比较受欢迎,这样能使我们的东西更加符合用户的需要,做到这一点money就来了
呵呵,那么简单money就来了啊。
呵呵,我觉得你没有明白我说的意思,我并没有说money能很简单的就来了,相反,我觉得很难,因为寻找市场是很困难的,尤其对我们程序员来说。
因为即使你看到用户的访问记录你能知道用户的需求吗,你好像觉得分析用户的需求是一件很简单的事情,所以money能来得很简单,问题是分析用户需求是一件很简单得事情吗,假设中国有2亿网民,你能分析出其中1千万得需求,你的money就来了,说白了就是市场,用户的需求不就是市场吗,分析市场如果很容易,那程序员都发了。所以即使看到监测结果你能知道别人需要什么吗?看到几个图表你能知道市场在哪里吗,如果你知道,然后去做这个需求,这个市场,那么你的money就来了。
cherami 写道
我的意思是真正的分析性能瓶颈,优化程序,有页面访问性能不是关键,关键的是方法的性能,这样才能找到真正的瓶颈所在
真正分析性能瓶颈也不能只靠这个,事实上程序员都回利用综合手段,loadrunner,jmeter,等等其他监控工具应该综合时候,只有这个才能事半功倍,我好像也没有说页面访问性能是关键吧。而且jamon也是可以监控方法的调用次数的。
12 楼
cherami
2007-09-05
引用
jamon的用途很大的,监测页面的访问可以得到两个结果,主要的一个不是用来对比性能,而是观察哪些页面比较受用户欢迎,通过这个监测结果我们可以分析用户的行为,通过它我们就知道用户需要什么样的东西,什么样的东西比较受欢迎,这样能使我们的东西更加符合用户的需要,做到这一点money就来了
呵呵,那么简单money就来了啊。
分析什么页面受欢迎非常的简单,一个方法是分析访问日志,一个方法是加Filter,就不说多如牛毛的站点统计工具了(google分析等)
我的意思是真正的分析性能瓶颈,优化程序,有页面访问性能不是关键,关键的是方法的性能,这样才能找到真正的瓶颈所在
11 楼
flash
2007-09-05
ahuaxuan 写道
cherami 写道
呵呵,性能监测一家是一家的方法。
光监测页面访问的性能好像作用不大,还是不知道瓶颈在哪里。
光监测页面访问的性能好像作用不大,还是不知道瓶颈在哪里。
jamon的用途很大的,监测页面的访问可以得到两个结果,主要的一个不是用来对比性能,而是观察哪些页面比较受用户欢迎,通过这个监测结果我们可以分析用户的行为,通过它我们就知道用户需要什么样的东西,什么样的东西比较受欢迎,这样能使我们的东西更加符合用户的需要,做到这一点money就来了
确实如化。虽然没用过。
10 楼
ahuaxuan
2007-09-04
cherami 写道
呵呵,性能监测一家是一家的方法。
光监测页面访问的性能好像作用不大,还是不知道瓶颈在哪里。
光监测页面访问的性能好像作用不大,还是不知道瓶颈在哪里。
jamon的用途很大的,监测页面的访问可以得到两个结果,主要的一个不是用来对比性能,而是观察哪些页面比较受用户欢迎,通过这个监测结果我们可以分析用户的行为,通过它我们就知道用户需要什么样的东西,什么样的东西比较受欢迎,这样能使我们的东西更加符合用户的需要,做到这一点money就来了
9 楼
cherami
2007-09-04
呵呵,性能监测一家是一家的方法。
光监测页面访问的性能好像作用不大,还是不知道瓶颈在哪里。
光监测页面访问的性能好像作用不大,还是不知道瓶颈在哪里。
8 楼
X.D.Hua
2007-08-31
Mark,有空再找楼主请教
7 楼
strongkill
2007-08-29
我還是使用log4j好了.
6 楼
javaeye289
2007-08-29
why?那么多的资料啊?
5 楼
hamburg
2007-08-28
如果是存在内存中,访问量大的时候肯定会出现问题,
如果能存到库中的话还是不错的。
如果能存到库中的话还是不错的。
4 楼
ahuaxuan
2007-08-28
Rod 写道
我有个疑问,我还没研究源码,那些数据,运行的次数什么的,是保存到哪里你?
数据默认情况下貌似是保存到内存中,但是可以保存到数据库中,
http://jamonapi.sourceforge.net/
这个是它的文档,大家有兴趣来讨论讨论,之前发这个贴的时候讨论的人不多,我就以为大家对这个性能监控这方面不是很感兴趣,或者也说明它用途不是很大,所以我也没有跟进了。
galaxystar 写道
之前看了jdk6的instrumentation , 不知道有没有好的实现, 用它来侦测系统性能的.
那是不是意味着instrumentation也是一个规范了?还是说jdk6已经实现了?
iamjxc 写道
奇怪, 为什么例子能够运行,但是拷贝到项目里就报错呢?
以menu.jsp为例, 下面的代码中报错:
// Enable/Disable jamon as a whole and the proxy capability. ResultSets will be disabled by default.
if ("Enable Monitoring!".equals(enableAll)) {
MonitorFactory.enable();
MonProxyFactory.enableAll(true);
MonProxyFactory.enableResultSet(false);
}
说是下面的函数不存在:
MonitorFactory.enable();
还有很多方法不存在.
打开MonitorFactory类,也没有看到enable方法.
以menu.jsp为例, 下面的代码中报错:
// Enable/Disable jamon as a whole and the proxy capability. ResultSets will be disabled by default.
if ("Enable Monitoring!".equals(enableAll)) {
MonitorFactory.enable();
MonProxyFactory.enableAll(true);
MonProxyFactory.enableResultSet(false);
}
说是下面的函数不存在:
MonitorFactory.enable();
还有很多方法不存在.
打开MonitorFactory类,也没有看到enable方法.
你的问题找到了吗,是不是项目配置有问题啊
3 楼
galaxystar
2007-08-27
之前看了jdk6的instrumentation , 不知道有没有好的实现, 用它来侦测系统性能的.
2 楼
Rod
2007-08-27
我有个疑问,我还没研究源码,那些数据,运行的次数什么的,是保存到哪里你?
1 楼
iamjxc
2007-08-27
奇怪, 为什么例子能够运行,但是拷贝到项目里就报错呢?
以menu.jsp为例, 下面的代码中报错:
// Enable/Disable jamon as a whole and the proxy capability. ResultSets will be disabled by default.
if ("Enable Monitoring!".equals(enableAll)) {
MonitorFactory.enable();
MonProxyFactory.enableAll(true);
MonProxyFactory.enableResultSet(false);
}
说是下面的函数不存在:
MonitorFactory.enable();
还有很多方法不存在.
打开MonitorFactory类,也没有看到enable方法.
以menu.jsp为例, 下面的代码中报错:
// Enable/Disable jamon as a whole and the proxy capability. ResultSets will be disabled by default.
if ("Enable Monitoring!".equals(enableAll)) {
MonitorFactory.enable();
MonProxyFactory.enableAll(true);
MonProxyFactory.enableResultSet(false);
}
说是下面的函数不存在:
MonitorFactory.enable();
还有很多方法不存在.
打开MonitorFactory类,也没有看到enable方法.
发表评论
-
过滤字符的性能调优?挤一挤还是有的
2010-05-29 05:54 3616/* *auth ... -
Master-Slave,Spring,Hibernate,故事曲折离奇,情结跌宕起伏
2009-02-05 13:49 8704/** *作者:张荣华 *日期 ... -
弃成见,反省,并重新认识struts.i18n.encoding
2008-12-24 15:42 3899[size=medium]之前和大家讨论了struts2.0中 ... -
关键字:查询,事务,粒度
2008-08-22 17:05 5146[size=medium]/** *作者: ... -
看看mina和memcached的联姻(适合不同语言客户端,高并发?)
2008-07-21 17:06 7997[size=medium]/** * 作者:张荣华 * 日 ... -
如何解决mysql的master-slave模式中ReplicationDriver的使用问题
2008-06-19 18:23 8228/** * 作者:张荣华 * 日期:2008-6-19 ... -
别装了,难道你们不想把properties直接注入到object中去(spring-plugin)?
2008-04-09 18:01 3661[size=small]/** *作者:张荣华(ahuaxu ... -
用jamon来监控你的sql执行效率
2008-02-25 15:48 3720/** *作者:张荣华 *日期:2008-2-25 ... -
java同msn的通信,大家想想用途吧
2007-11-24 17:14 2520程序员的生活真是单调,除了编程还是编程,工作日 ... -
EAI企业应用集成场景及解决方案
2007-09-21 18:21 3161/** *作者:张荣华(ahuaxuan) *2007-9 ... -
quartz和应用的集群问题
2007-08-21 18:36 12829之前看到很多关于quartz的讨论,尤其是关于quar ... -
请问责任链真的是一种设计模式吗
2007-07-26 18:12 9440坛子上讨论设计模式的也挺多的,但是关于这个责任链模式还没有人提 ... -
把ActiveMQ的控制台整合到你的web程序中
2007-07-19 12:06 8855在使用ActiveMQ的时候把ActiveMQ的控制台整 ... -
设计模式之:解剖观察者模式
2007-07-17 16:12 6871[size=9] 论坛上很多人都 ... -
java邮件:在简单和复杂之间的方案
2007-07-11 18:07 7587/** *作者:张荣华(ahuaxu ... -
强强连手, 在模板中分页,看Freemarker和displaytag的结合
2007-07-09 09:22 6931/** *作者:张荣华(ahuaxuan) *2007-0 ... -
解惑:在spring+hibernate中,只读事务是如何被优化的。
2007-06-28 18:22 7625/** *作者:张荣华(ahuaxuan) *2007- ... -
让webwork零配置 第二章(实现)(实例已放出,大家可以下载运行)
2007-06-25 09:23 5714/** *作者:张荣华(ahuaxuan) *2007-0 ... -
让webwork2零配置,第一章(主贴再次更新)
2007-06-18 15:41 13399/** *作者:张荣华(ahuaxuan) *2007-0 ... -
Spring声明式事务管理源码解读之事务提交
2007-06-11 09:19 7289/** *作者:张荣华(ahuaxuan) *2007-0 ...
相关推荐
总之,“jamon-sample.zip”提供的资源对于学习和使用JAMON,或者对Java应用程序进行性能优化的开发者来说,是一个宝贵的参考资料。通过深入研究和实践,可以更好地理解和利用JAMON这一强大的监控工具。
赠送jar包:jamon-runtime-2.3.1.jar; 赠送原API文档:jamon-runtime-2.3.1-javadoc.jar; 赠送源代码:jamon-runtime-2.3.1-sources.jar; 赠送Maven依赖信息文件:jamon-runtime-2.3.1.pom; 包含翻译后的API文档...
JAMon(Java Application Monitor)是一个轻量级的性能监控工具,用于监控Java应用程序的性能指标,如方法调用时间、内存使用等。Maven插件则是将JAMon的功能集成到Maven构建过程中的桥梁,使得开发者在构建应用时...
还在为找不到jar文件烦心吗,不用了到我空间来有你想要的,持续更新。。。 jamon-2.7.jar
赠送jar包:jamon-runtime-2.3.1.jar; 赠送原API文档:jamon-runtime-2.3.1-javadoc.jar; 赠送源代码:jamon-runtime-2.3.1-sources.jar; 赠送Maven依赖信息文件:jamon-runtime-2.3.1.pom; 包含翻译后的API文档...
赠送jar包:jamon-runtime-2.4.1.jar; 赠送原API文档:jamon-runtime-2.4.1-javadoc.jar; 赠送源代码:jamon-runtime-2.4.1-sources.jar; 赠送Maven依赖信息文件:jamon-runtime-2.4.1.pom; 包含翻译后的API文档...
在 Web 应用程序中,ApplicationContext 的加载机制是非常重要的, Spring 提供了多种方式来加载 ApplicationContext。 首先,Spring 提供了两种选择来加载 ApplicationContext:ContextLoaderListener 和 ...
赠送jar包:jamon-runtime-2.4.1.jar; 赠送原API文档:jamon-runtime-2.4.1-javadoc.jar; 赠送源代码:jamon-runtime-2.4.1-sources.jar; 赠送Maven依赖信息文件:jamon-runtime-2.4.1.pom; 包含翻译后的API文档...
JAMon.jar..............
hbase源码调试的时候,需要用它生成hbase-server模块的jamon模版代码,其官网需要翻墙
**Jamon:Java的文本...通过利用Jamon,开发者可以更加专注于应用程序的核心逻辑,同时享受到开源社区带来的便利和创新。无论是初学者还是经验丰富的开发者,都可以从Jamon中受益,提升其在Web开发领域的效率和质量。
开发时使用的jar包,为您的使用提供更多的包!
Hbase源码编译时使用到得包.谢谢使用
JAMon核心 com.jamonapi/jamon/2.81/jamon-2.81.jar
JAMon核心 com.jamonapi/jamon/2.80/jamon-2.80.jar
Jamon 是一个出色的配置文件解析器,可与您的应用程序一起使用。 配置文件可能如下所示: ip =127.0.0.1 port =123 address =${ip}:${port} base =www.myaddr.com [defaults] user =gabriel email =ga@stripetree...
JAMon核心 com.jamonapi/jamon/2.0/jamon-2.0.jar
詹姆斯介绍 ...JAMon可用于确定应用程序性能瓶颈,用户/应用程序交互和应用程序可扩展性。JAMON收集摘要统计信息,如命中,执行时间(总计,平均值,最小值,最大值,标准差)和同时应用程序请求。
火腿演示Jamon 的演示 - 开源类型安全模板引擎Jamon 是一个开源模板引擎,可确保类型安全。 Jamon 所做的是基于 Jamon 模板生成 Java 类,Java 编译器将帮助确保我们将正确的 Java 类型传递给模板。 我在这个演示中...
maven-jamon-plugin-2.2.2.0.jar