测试 1
benchmarkmode (mode.averageTime) outputtimeUnit (timeUnit.nanoSeconds) warmup (التكرار = 5 ، الوقت = 3 ، timeUnit = timeUnit.seconds)@measurement (eDerations = 20 ، time = 3 ، timeUnit.seconds)@fork (1) قائمة <Tring> data = new ArrayList <> () ؛ setup public void init () {// إعداد (int i = 0 ؛ i <100 ؛ i ++) {data.add (uuid.randomuuid (). toString ()) ؛ }} @teardown public void destory () {// destory} benchmark public void benchstream () {data.stream (). foreach (e -> { } benchmark public void benchparallelstream () {data.parallelstream (). foreach (e -> { } static static void main (string [] args) يلقي RunNerexception {Options Opt = new OptionsBuilder () .include ( New Runner (OPT) .Run () ؛ }} PALALLELSTREAM 线程数
默认是 وقت التشغيل
运行结果
# تشغيل كاملة. إجمالي الوقت: 00: 02: 44Benchmark Mode CNT ERRR ERROR LERT UNITSSTREAMBENCHTEST.BENCHPARALLELSTREAM AVGT 20 155868805.437 ± 1509175.840 NS/OpstreamBenchTest.Benchstream AVGT 20 1147570372.950 ± 613849414 NS
测试 2
将数据 البيانات 改为 30 , 同时 النوم 改为 100
وضع خطأ في وضع CNT CNT خطأ unitsstreambenchtest.benchparallelsream avgt 20 414230854.631 ± 725294.455 ns/opstreambenchtest.benchstream avgt 20 3107250608.500 ± 4805037.628 ns/op
可以发现 النوم 越长 , Parallelsstream 优势越明显。
小结
PALALLELSTREAM 在阻塞场景下优势更明显 , 其线程池个数默认为
Runtime.getRuntime (). AvailableProcessors () - 1 , 如果需修改则需设置 -djava.util.concurrent.forkjoinpool.common.paralleism = 8
以上就是本次讲述知识点的全部内容 , 感谢你对武林网的支持。