我尝试在Google Nexus 7上运行多线程Java程序(采用MapReduce风格),并使用
测量执行时间System.currentMillis();
我发现性能差异很大(Tegra 3 w / 4内核上有4个线程),如下所示:
704
872
729
729
1086
778
1214
1045
749
768
然而,当我使用顺序版本时,我得到了这样的稳定数据:
928
851
850
842
863
917
873
905
853
870
我认为垃圾收集器是并发的所以它也需要一个核心,这是导致大变化的原因吗?
为什么有时性能甚至比顺序版本差得多?
答案 0 :(得分:0)
IMO,GC不太可能是变异的原因。我认为垃圾收集器也是多线程的,这是导致大变化的原因吗?
为什么有时性能甚至比顺序版本差得多?
我们需要查看您的代码或SSCE。但是,我的猜测原因是: