我遇到了一个非常奇怪的错误,我希望这里的某个人可以解决一些问题,因为它已经超出了我的专业领域.
首先,相关背景信息:我在2013年晚些时候使用2.4GHz Haswell CPU在Macbook Pro Retina上运行OS X 10.9.4.我正在从Oracle使用JDK SE 8u5 for OS X,并且我在最新版本的IntelliJ IDEA上运行我的代码.这个bug似乎也只针对OS X,因为我已经在Reddit上发布了关于这个bug的信息,而OS X的其他用户能够重新创建它,而Windows和Linux上的用户,包括我自己,让程序按预期运行println()版本运行比没有println()的版本慢半秒.
现在的bug:在我的代码中,我有一个println()语句,当包含时,程序运行在~2.5秒.如果我通过删除它或将其注释掉来删除println()语句,程序违反直觉需要更长时间才能运行~9秒.这是非常奇怪的,因为I/O理论上应该减慢程序速度,而不是让它更快.
对于我的实际代码,这是我对Project Euler Problem 14的实现.请记住我还是学生,所以这不是最好的实施:
public class ProjectEuler14
{
public static void main(String[] args)
{
final double TIME_START = System.currentTimeMillis();
Collatz c = new Collatz();
int highestNumOfTerms = 0;
int currentNumOfTerms = 0;
int highestValue = 0; //Value which produces most number of Collatz terms
for (double i = 1.; i <= 1000000.; i++)
{
currentNumOfTerms = c.startCollatz(i);
if (currentNumOfTerms > …Run Code Online (Sandbox Code Playgroud)