如何在 Java 编译器中禁用死代码消除?
Posted
技术标签:
【中文标题】如何在 Java 编译器中禁用死代码消除?【英文标题】:How to disable dead code elimination in the Java compiler? 【发布时间】:2010-07-02 01:26:56 【问题描述】:这似乎是一个奇怪的问题......为什么有人想要禁用这样的东西?但我知道我在做什么(以及为什么我想要/需要这样做)并且我真的想禁用死代码消除。
有可能吗?
顺便说一句,我使用 Eclipse,如果它是相关的...
【问题讨论】:
你是在调试模式下编译吗? 我真的不知道,Eclipse 令人困惑。如何在调试/发布模式下编译?我大多选择“导出”来编译最终文件... 有时当您需要对某些事物进行基准测试时,您可能需要调用一个函数,该函数可以进行一些计算并返回。我觉得这个问题很有用,只是我在这个论坛上没有答案 【参考方案1】:有可能吗?
我还没有遇到任何方法来做到这一点。似乎没有任何相关选项。
但需要明确的是,死代码消除可以(可能)由字节码编译器和 JIT 中的一个或两个来完成。所以你需要清楚你关心的是哪种情况。 (我猜是字节码编译器……)
【讨论】:
【参考方案2】:我的第一个想法是写一些疯狂的方面并使用编译时编织,这样你的死代码就不再死了......但后来我的脑袋爆炸了。
【讨论】:
"...但后来我的头爆炸了" 凌乱!我想我们也需要考虑删除死编码器:-)【参考方案3】:我建议你再想一想,尝试用一些不同的方式来实现你的目标。你试图做什么看起来像“黑客”,即使你成功了,你也永远无法确定你的死代码保留机制仍然有效。
【讨论】:
以上是关于如何在 Java 编译器中禁用死代码消除?的主要内容,如果未能解决你的问题,请参考以下文章