go vs java并發(fā)性能對(duì)比
視頻講解:

矩陣相乘go代碼
編譯:go build -o concurrence/matmul.exe concurrence/mat_mul.go
運(yùn)行:.\concurrence\matmul.exe 10
矩陣相乘java代碼
編譯:javac -encoding UTF-8 concurrence/MatMul.java
運(yùn)行:java concurrence/MatMul 10
耗時(shí)對(duì)比

原因
耗時(shí)由兩部分組成:
計(jì)算矩陣相乘
協(xié)程/線程的切換
在go語(yǔ)言里,協(xié)程的切換成本非常低,所以耗時(shí)幾乎全來(lái)自于計(jì)算矩陣相乘,所以計(jì)算量十倍十倍地漲時(shí),耗時(shí)也差不多是十倍十倍地漲。
java線程切換成本很高,或者說(shuō)“線程切換/計(jì)算矩陣相乘”比值較高,且隨著并發(fā)度的增加這個(gè)比值越來(lái)越高,成以耗時(shí)的增漲速度超過(guò)了計(jì)算量的增漲速度。
以下是我精心設(shè)計(jì)的《go語(yǔ)言》專題視頻,更多課程進(jìn)我主頁(yè),點(diǎn)擊頂部Tab的“課程”查看。





標(biāo)簽: