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 Platform Debugger Architecture)来检测来自外部应用程序的Marker.start()和Marker.end()的出现。然而,我认为JVM可能会优化/消除代码。如何防止死代码被JVM优化?
发布于 2012-06-01 20:21:08
例如,您可以在类Marker中的某个位置创建一个伪int变量,并在start()和end()方法中递增/递减它的值。我不认为任何优化器可以从类中删除实例字段,即使该值不在任何地方使用。毕竟,总会有人向JVM注入新的代理代码,并要求提供值。这意味着对start()和stop()的调用也不应该进行优化。
https://stackoverflow.com/questions/10768984
复制相似问题