下面有点高尿有点黄是什么原因因

什么情况下设置runtime.GOMAXPROCS会有比较高的提速? - Golang中国
15:20 发布 2981 次点击
我们都知道Go默认是用一个CPU核心的,除非手动设置runtime.GOMAXPROCS。网上说有时设置了使用多核速度反而会下降。请问什么情况下设置这个函数会有比较好的加速?爬虫之类的应用可以吗?
我的看法:
适合于CPU密集型、并行度比较高的情景。
爬虫如果只是抓网页而不分析,只是并发度比较高,属于I/O密集型,并不需要开太大的GOMAXPROCS。
再举个例子,假设我有很多组数据需要排序,把GOMAXPROCS设置为和核数相当,就会很大提高执行效率。
@stevewang 我准备试试很多数组排序,到时把结果放上来。
GOMAXPROCS最好不要超过NumCPU,不然CPU之间切换也是浪费时间。
这是我测试的代码
// parallel package main
"math/rand"
func testData() [][]int {
now := time.Now()
rand.NewSource(now.UnixNano())
seed := rand.New(src)
make([][]int, 10000)
for i := 0; i & len(data); i++ {
make([]int, 10000)
for j := 0; j & 10000; j++ {
data[i][j] =
seed.Intn(100000)
return data }
func test() {
data := testData()
ch := make(chan int)
for i := 0; i
& len(data); i++ {
go func(ch chan int, data []int) {
sort.Ints(data[:])
}(ch, data[i][:])
for i := 0; i
& len(data); i++ {
func main() {
st := time.Now()
fmt.Println(time.Since(st))
runtime.GOMAXPROCS(2)
st = time.Now()
fmt.Println(time.Since(st))
runtime.GOMAXPROCS(3)
st = time.Now()
fmt.Println(time.Since(st))
runtime.GOMAXPROCS(4)
time.Now()
fmt.Println(time.Since(st))
fmt.Println("Hello
World!") }
该代码的作用是生成10000个数组,每个数组有10000个int元素,分别调用不同CPU核数进行排序计算。用的是Go内置的排序函数。
中的时间如下
25.6269405s
14.1753705s
10.3508423s
8.5466479s
分别是单核,2核,3核,4核的计算时间。的确用多核后计算速度提升很大。
补充一下,我在4楼说的“GOMAXPROCS最好不要超过NumCPU”,是对于CPU密集型的任务。
@stevewang
当设置GOMAXPROCS&NumCPU的时候,Go的计算时间和GOMAXPROCS=NumCPU是一样的,似乎没有什么超过NumCPU的说法。
有些例子不一定能体现出差别。
但是显然如果所有的CPU都在忙的时候,再增加GOMAXPROCS只可能增加goroutine调度的负载而不能加快执行速度。
@stevewang 我的意思是不管GOMAXPROCS设多大,好像Go最大只会用等于NumCPU的数量。
不是这样的,GOMAXPROCS的最大上限是256。
相关源码在proc.c文件的runtime·gomaxprocsfunc函数和procresize函数(go1.3.1)。
后方可回复, 如果你还没有账号你可以
一个帐号。经济原因呢,请排上哦,呵呵,谢谢
你这就等于没说,呵呵,你没有自己的观点
呵呵,详细
您的举报已经提交成功,我们将尽快处理,谢谢!
我小时的乳名叫‘小三’,在家排行老三。。。。。。
静坐常思己过,闲谈莫论人非.师傅教导我们,做人要厚道.师傅还教导我们,不要诽谤佛弟子,即使他做了一些不如法、不如理的事,也不要去说他。他自己破戒,违背佛法,自由...
大家还关注
(window.slotbydup=window.slotbydup || []).push({
id: '2081942',
container: s,
size: '1000,60',
display: 'inlay-fix'以下试题来自:
问答题为测评综合分析能力,有考官设计结构化面试试题如下:“请谈谈高新行业人才流失比较高的原因,你用什么对策来解决这个问题”
[要求] 请设计评分标准,分成高、中、低三个等级描述。 参考答案高:有个人独到见解,能从问题产生的背景、原因、过程、后果、危害等方面来分析;提出多种可行的针对性措施。
中:能看到某...
为您推荐的考试题库
你可能感兴趣的试题
1.问答题 参考答案缺乏恰当的面试技巧。表现在:①问题随意性强,没有事先准备;②没有尽量创造和谐气氛,咄咄逼人;③面试目的不明确,做出结论性...
热门相关试卷
最新相关试卷这是个机器人猖狂的时代,请输一下验证码,证明咱是正常人~}

我要回帖

更多关于 嘴唇有点黑是什么原因 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信