我尝试在 Google Nexus 7 上运行多线程 Java 程序(MapReduce 风格),并用
System.currentMillis();
我发现性能变化很大(Tegra 3 w/4 cores 上有 4 个线程),如下所示:
704
872
729
729
1086
778
1214
1045
749
768
但是,当我使用顺序版本时,我得到了这样的稳定数据:
928
851
850
842
863
917
873
905
853
870
我认为垃圾收集器是并发的,所以它也需要一个核心,这是造成大变化的原因吗?
为什么有时性能甚至比顺序版本差很多?