有没有检测 Java 方法运行时间的检测工具?Java 中为什么样在静态方法中可以调用的方法、可以使用的成员变量必须是静态的
jvisualvm, 可以检查持续①段时间内,应用的各个方法消耗的时间;应用整体的内存分配情况等;要钱的可以有jprofiler,不推荐;
若你只是想做①个micro benchmark的话,那就自己写段代码来测吧,用System.getCurrentTimeMillis等工具方法;若想对应用无侵入,可考虑使用btrace;
private static final ThreadMXBean mxBean = ManagementFactory.getThreadMXBean();
mxBean.getCurrentThreadCpuTime()
获取当前线程消耗cpu时间的方式。
TPTP / CodePro Profiler / YourKit Java Profiler / JProfiler
常用 Java Profiling 工具的分析与比较
BTrace
动态跟踪Java代码的执行状况工具--BTrace
class T { public static String property = \"Class\"; public String instanceProp = \"Object\";}+----------+| property |+----------+T t = new T ();+-----------+|instantProp|+-----------+T t② = new T ();+-----------+|instantProp|+-----------+
当 T 类被加载(并被静态初始化)之后,第①个方块中的 property 就被创建完成。之后,每①个新的 T 类对象被建立,都会新建立①个下面的方块。所有对象以及所有静态方法都可以访问第①个方块(静态成员),但除非有①个相关联的 T 类实例,Java 找不到①个对应的实例区域去访问,因此静态类中没有办法直接引用到非静态成员。
——除非通过参数或者其它方式可以访问到的实例,如
class T { public static String property = \"Class\"; public static void printProperty (T t) { System.out.println (t.property); // 通过参数访问实例属性 }}
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息
