我怀疑是否有一种方法可以像Java中的#ifdef #ifndef这样在Java中创建编译时条件。
我的问题是,有一种用Java编写的算法,并且对该算法的运行时间有所不同。因此,我想衡量每次使用改进后可以节省多少时间。
现在,我有一组布尔变量,这些布尔变量用于确定在运行时应该使用哪个改进,而不应该使用哪个改进。但是,即使测试这些变量也会影响总运行时间。
因此,我想找到一种方法来确定在编译期间应编译和使用程序的哪些部分。
有人知道用Java做到这一点的方法吗?或者,也许有人知道没有这种方法(这也很有用)。
private static final boolean enableFast = false; // ... if (enableFast) { // This is removed at compile time }
上面显示的条件在编译时进行评估。如果相反,你使用此
private static final boolean enableFast = "true".equals(System.getProperty("fast"));
然后,JIT编译器将评估任何依赖enableFast的条件。此开销可忽略不计。