我最近一直在用C写很多代码,现在我要改用Java了。我目前正在实现一个大型数据结构,我想知道当我调用Java编译器以提高性能时,是否有任何优化标志可以打开,就像在gcc中那样。
我已经习惯了:
gcc -O3 -NDEBUG MyProgram.c对于javac,是否有类似的命令
我使用JDK,运行Ubuntu 10.04。
发布于 2011-02-15 05:39:05
Java中的优化主要是由JIT编译器在运行时完成的。因此,在编译时(当它只创建字节码时)尝试指示它以某种方式进行优化是没有意义的。JIT几乎肯定会在现场做出更好的决策,了解确切的环境并观察代码特定部分的实际执行模式。
有一些特定的编译器选项会影响性能,但这些选项用于调优JVM (包括垃圾收集器),而不是优化代码本身。
发布于 2011-02-15 05:40:07
没有与-O3或任何-O级别等效的功能,但是您可以通过-XX:访问特定的调优选项。有一个完整的列表可用here。
但是,这假设您使用的是Oracle提供的JVM,并且它可能会根据您的环境而有所不同(“使用JDK”并不能真正描述您正在使用的版本)。
发布于 2011-11-21 17:39:06
您可以通过Proguard来优化字节码,这是一种流行的Java混淆器。它将按该顺序缩小、优化和混淆代码,并使用开关来控制几乎所有的东西。它将删除未使用的方法和变量,内联代码,删除死分支,合并相同的代码,并执行数十个其他优化。结果是一个jar文件,它的功能与您的输入相同,但占用的空间更少,运行速度更快。
它是商业客户端软件的必备组件。
https://stackoverflow.com/questions/4997513
复制相似问题