我在 Go 中编写了两个版本的归并排序。一个有goroutines,另一个没有。我正在比较每个人的表现,我一直在看
https://github.com/denniss/goplayground/blob/master/src/example/sort.go#L69
那就是使用 goroutines 的那个。这是一个没有
https://github.com/denniss/goplayground/blob/master/src/example/sort.go#L8
我一直在试图弄清楚为什么 goroutine 实现的性能比没有的要差得多。这是我在当地看到的数字
go run src/main.go
[5 4 3 2 1]
Normal Mergesort
[1 2 3 4 5]
Time: 724
Mergesort with Goroutines
[1 2 3 4 5]
Time: 26690
然而,我仍然无法弄清楚为什么。想知道你们是否可以给我关于做什么/看什么的建议或想法。在我看来,goroutines 的实现至少应该表现得更好一些。我这么说主要是因为以下几行
go MergeSortAsync(numbers[0:m], lchan)
go MergeSortAsync(numbers[m:l], rchan)
慕哥9229398
萧十郎
红糖糍粑
相关分类