社区
Java EE
帖子详情
如何找出系统中执行很慢的类
fxbird
2010-06-30 07:41:02
对于web系统,我觉得用spring可以解决,写个拦截器,记录每个方法的执行时间,写入日志就行了,但对于非web系统呢,假如有个c/s系统,如何着手?
...全文
147
17
打赏
收藏
如何找出系统中执行很慢的类
对于web系统,我觉得用spring可以解决,写个拦截器,记录每个方法的执行时间,写入日志就行了,但对于非web系统呢,假如有个c/s系统,如何着手?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liqinghuiyx
2010-07-06
打赏
举报
回复
看题就要回帖的
SNOOPY369
2010-07-06
打赏
举报
回复
使用netbeans,sun官方网站可以下载,和eclipse差不多的IDE。里面有performance profiler,可以定位到method级别,可以看到每个方法运行所需时间,所占内存,cpu等一些信息。
Cappuccino
2010-07-06
打赏
举报
回复
拦截器类文件 WebSessionInterceptor.java
public class WebSessionInterceptor extends HandlerInterceptorAdapter
{
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception
{
//获取URL请求的相对路径信息URI的前缀部分,形如:/servlet/test.do的test
String lookupPath = new UrlPathHelper().getLookupPathForRequest(request);
// logger.debug(lookupPath);
WebSession webSession = null;
try
{
webSession = handler.getClass().getDeclaredMethod(lookupPath, HttpServletRequest.class, HttpServletResponse.class)
.getAnnotation(WebSession.class);
}
catch (Exception e)
{
//
}
if (webSession == null) webSession = handler.getClass().getAnnotation(WebSession.class);
//do something...
}
}
spring配置文件 servlet-do.xml
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
<property name="interceptors">
<list>
<ref bean="webSessionInterceptor"/>
</list>
</property>
</bean>
<bean id="annotationMethodHandlerAdapter" class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
<bean id="webSessionInterceptor" class="frame.web.mvc.WebSessionInterceptor"/>
控制器类文件 MainController.java
@Controller
@WebSession
public class MainController
{
private final Logger logger = LoggerFactory.getLogger(getClass());
@WebSession
@RequestMapping
public ModelAndView index(HttpServletRequest request, HttpServletResponse response) throws Exception
{
return new ModelAndView("main/index.jsp");
}
@WebSession
@RequestMapping
public ModelAndView make(HttpServletRequest request) throws Exception
{
return new ModelAndView("main/index.jsp");
}
}
请求/main.index.do时,系统能够执行MainController中的方法index,拦截器类也可以根据index方法的参数项来获取Method和Method上声明的Annotation项@WebSession。
ronniegxq
2010-07-06
打赏
举报
回复
不懂帮顶
fxbird
2010-07-06
打赏
举报
回复
ding
copine
2010-07-06
打赏
举报
回复
你需要一个profile工具,例如jprofiler.
是风啊a
2010-07-02
打赏
举报
回复
一般如果慢的话,就跟查询数据库有关,所以也没什么必要……
哀
2010-07-02
打赏
举报
回复
spring可以做到
liguangwen86
2010-07-02
打赏
举报
回复
应该有一个软件可以测试,以前的同事弄过,忘了名字了
xcehn
2010-07-01
打赏
举报
回复
jprofile
[Quote=引用 5 楼 dr_lou 的回复:]
用java_home/bin/jvisualvm.exe看哪个方法或类占用cpu时间最长
[/Quote]
这个怎么用?有啥效果
jackaudrey
2010-07-01
打赏
举报
回复
c/s里照样用spring
fxbird
2010-07-01
打赏
举报
回复
[Quote=引用 4 楼 bao110908 的回复:]
搞笑!Spring 又不是只能用在 B/S 应用中
[/Quote]
spring当然能用在c/s里,但它能使用拦截器吗?c/s有filter吗?除了getBean没看到任何可以用的地方。
wingardium
2010-07-01
打赏
举报
回复
[Quote=引用 2 楼 fxbird 的回复:]
引用 1 楼 qingzhe2008 的回复:
c/s系统照样可以用spring呀
c/s里你怎样使拦截器起作用?
[/Quote]
自己用java.lang.reflect.Proxy实现一个拦截器
dr_lou
2010-07-01
打赏
举报
回复
用java_home/bin/jvisualvm.exe看哪个方法或类占用cpu时间最长
火龙果被占用了
2010-07-01
打赏
举报
回复
搞笑!Spring 又不是只能用在 B/S 应用中
fxbird
2010-06-30
打赏
举报
回复
[Quote=引用 1 楼 qingzhe2008 的回复:]
c/s系统照样可以用spring呀
[/Quote]
c/s里你怎样使拦截器起作用?
qingzhe2008
2010-06-30
打赏
举报
回复
c/s系统照样可以用spring呀
Android10
系统
ROM定制之Frida逆向分析实战
01.内置fridaserver可
执行
程序到手机
系统
02.配置fridaserver为后台进程 03.添加自定义属性控制fridaserver启动和停止 04.开发system权限的App并内置到手机
系统
05.App
中
编写控制fridaserver启动和停止的代码逻辑 06...
SQL
执行
得
很慢
的原因
一、
执行
很慢
,分两种情况 大多数情况是正常的,只是偶尔出现
很慢
的情况。 在数据量不变的情况下,这条 SQL 一直以来都
执行
的
很慢
。 二、偶尔
很慢
的情况 一条 SQL 偶尔出现
很慢
的情况,该 SQL 的书写本身问题不大...
mysql运行语句
很慢
_SQL语句
执行
得
很慢
的原因有哪些
在数据量不变的情况下,这条SQL语句一直以来都
执行
的
很慢
针对大多数情况正常,偶尔
很慢
的情况1、当内存
中
的数据页相对磁盘的数据页发生变化时,我们称该内存页为脏页,反之则为干净页。从持久性上考虑,脏页是必须要...
为什么你的SQL
执行
很慢
为什么你的SQL
执行
很慢
SQL语句
执行
很慢
原因分析1.没走索引1.1对索引字段进行了计算操作1.2存在隐式
类
型转换1.3 like操作1.4隐式编码转换1.5 not in 操作1.6扫描行数太多2.等待锁3.刷脏页4.
执行
undo log索引设计原则...
一条SQL语句
执行
得
很慢
的原因有哪些?
一条SQL语句
执行
的
很慢
,那是每次
执行
都
很慢
呢?还是大多数情况下是正常的,偶尔出现
很慢
呢?所以我觉得,我们还得分以下两种情况来讨论。 1、大多数情况是正常的,只是偶尔会出现
很慢
的情况。 2、在数据量不变的...
Java EE
67,516
社区成员
225,878
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章