gc()可以提高台式pc的性能,但不能提高笔记本电脑应用程序JAVA的性能

gc()可以提高台式pc的性能,但不能提高笔记本电脑应用程序JAVA的性能,java,eclipse,garbage-collection,Java,Eclipse,Garbage Collection,我在Linux Ubuntu上运行eclipse版本:3.8.1,在Macbook air笔记本电脑上运行eclipse Luna 4.4.1。当我在Ubuntu内的代码中使用System.gc时,我收到的输出速度更快,但当我在mac上测试时,结果更糟。原因可能是什么?首先,许多人认为直接调用System.gc是一种不好的做法,来回答你的问题:显然,Linux和Mac OS的java实现是不同的;因此,您最终会有不同的行为,这是不依赖于调用System.gc的另一个原因。您可能希望指定在这些操作

我在Linux Ubuntu上运行eclipse版本:3.8.1,在Macbook air笔记本电脑上运行eclipse Luna 4.4.1。当我在Ubuntu内的代码中使用System.gc时,我收到的输出速度更快,但当我在mac上测试时,结果更糟。原因可能是什么?

首先,许多人认为直接调用System.gc是一种不好的做法,来回答你的问题:显然,Linux和Mac OS的java实现是不同的;因此,您最终会有不同的行为,这是不依赖于调用System.gc的另一个原因。您可能希望指定在这些操作系统上使用的确切java版本。可能这不是垃圾收集器的问题,而是两台计算机之间CPU/RAM的简单差异。我知道这是一种不好的做法,但我被赋予了一项任务,以最大化代码性能。我正在编写代码,因为代码写得不好,因此我使用System.gc调用。我可以从mac上的Yourkit profiler中看到,CPU时间越来越长,堆上分配的内存越来越多,垃圾收集器工作的时间越来越多,收集的数量越来越多。但在Ubuntu中,性能更好,怎么可能呢?我运行的是Ubuntu eclipse sdk版本:3.8.1.1。我们在这里讨论的是eclipse本身的性能吗?此外,GC性能特征在很大程度上取决于所选的垃圾收集器和各种调优参数,因此调用system.GC可能最终改变GC的行为,这也可以通过调优VM选项来实现。你应该发布更多信息