0
public class A
{
    public String getText()
    {
        Marker.start();
        ...
        ...
        Marker.end();
    }
}

public class Marker
{
    public static void start()
    {
        long now = System.currentTimeMillis;
    }

    public static void end()
    {
        long now = System.currentTimeMillis;
    }
}

我想使用 JPDA(Java 平台调试器架构)来检测来自外部应用程序的 Marker.start() 和 Marker.end() 的发生。但是我认为代码可能会被 JVM 优化/消除。如何防止死代码被JVM优化?

4

1 回答 1

0

int例如,您可以在类中的某处创建一个假变量,并在and方法Marker中增加/减少它的值。我不认为任何优化器都可以从类中删除实例字段,即使该值没有在任何地方使用。毕竟,总有人可以将新的代理代码注入 JVM 并要求其值。这意味着调用也不应该得到优化。start()end()start()stop()

于 2012-06-01T12:21:08.370 回答