如何跟踪Java代码的执行
来源:互联网 发布:快速排序c语言实现 编辑:程序博客网 时间:2024/03/29 03:29
Zviki Cohen基于自己探索和理解他人所编写代码的体验,发布了跟踪Java执行过程的5种方法。他发现简单的阅读源代码(有些情况下是反编译代码),可能是十分乏味和有错误倾向的过程。
作为替代,他推荐了5种不同运行时跟踪方法以在Java代码运行时观察它,消除了学习他人代码的许多不利条件。以下浓缩了他的5个建议:
1、基本方法:断点和单步执行
“以最简单的方法开始:设置断点并开始跟踪你的程序执行。它在这些时候是最好的:你需要一个快速且简单的解决方案,你拥有所有代码并且知道想在哪里停止执行。你需要在给定断点设置精细的信息(参数、局部变量等等)。”
2、初级方法:调试消息
“我们通过设置调试消息来继续对程序跟踪。最简单的方法是使用System.out.println语句把消息打印到控制台。 它在这些时候是最好的:你拥有代码且很清楚你正在寻找什么。对事件处理器来说这是非常好的解决方案。当贯穿某一复杂流程的执行过程时,它的高性能对理解触发了哪个事件是非常实用的。”
3、热门方法:动态代理(Dynamic Proxy)
“这是在简单调试消息之上所做的改进。动态代理是一个特定的Java特性,它允许开发者引入proxy类,加进某一给定类之前,并通过某一给定接口截获所有调用。它在这些时候是最好的:它对事件处理器来说是非常好的解决方案。你可以在很短时间内用一个普通代理设置一个虚拟事件处理器,来查看事件发生顺序。当需要理解事件处理器时这是最简单和快捷的方法。”
4、暴力方法:运行时剖析器(Run-time Profiler)
“剖析器是通过特定的JVM hooks在系统中跟踪所有调用的强大工具。但是用它来跟踪执行过程是大才小用。它在这些时候是最好的:你想拥有一个特定操作的完整画卷(如,非常短的执行流程)。”
5、新时代:Aspects
“面向方面编程(Aspect Oriented Programming——AOP)是一个非凡的想法。无需深入Aspect概念,这里只考虑其能力:它是截获你的代码执行既快速又容易的方法。你可以围绕方法、构造器、属性访问等等有选择地设置hook,而不需要修改原始代码。在这些hook中,你可以打印调试消息。它在这些时候是最好的:你想跟踪可重新构建的代码执行。”
转自程式先锋论坛: http://www.javabiz.cn
- 如何跟踪Java代码的执行
- 如何跟踪java代码的执行
- 动态跟踪Java代码的执行状况工具--BTrace
- 动态跟踪Java代码的执行状况工具--BTrace
- SQLSERVER 如何跟踪执行的各项事务 语句跟踪
- 如何跟踪mysql执行的sql语句
- 如何跟踪mysql执行的sql语句
- mysql如何跟踪执行的sql语句
- mysql如何跟踪执行的sql语句
- 如何跟踪mysql执行的sql语句
- mysql如何跟踪执行的sql语句
- 5种跟踪Java执行的方法
- SQLSERVER 如何跟踪各项事务 执行跟踪
- 如何跟踪ACPI代码
- JAVA代码的执行
- Java代码的执行
- 在开发中如何跟踪Oracle数据库SQL的执行
- 如何跟踪session正在执行的sql语句
- 谢里的日托
- BO XI R2 CMS Cluster: The second CMS Server can't start解决方案
- IBM披露十大最新技术
- 戏说java web开发中的listener和filter
- JTable 使用和介绍
- 如何跟踪Java代码的执行
- 服务器控件开发之二:邮政编码控件
- 如何甄别好程序员?
- IT项目经理必须清楚和把握IT项目管理的弹性特点
- 程序员
- MD5
- 在JAVA中,怎样求字符串的长度?
- java中字符串比较为什么不能用“==”
- 很淡,很滋补